2017-11-03 2 views
1

Ich möchte eine Spalte durchlaufen und alle Zellen in diesem Bereich mit dem Wert x der Zelle "AD2" vergleichen. Wenn der Wert der Zelle i kleiner als der Wert x ist, möchte ich, dass Zelle i rot markiert wird. Während folgenden Code ausführen:Excel VBA: Single Loop + If-Anweisung; Laufzeitfehler 1004

Sub Button10() 
    Dim i As Long 
    Dim x As Integer 
    x = Range("AD2").Value 
    If Cells(i, 26).Value < x Then 
     Cells(i, 26).Font.Color = vbRed 
     For i = 1 To 500 
     Next i 
    End If 
End Sub 

ich folgende Fehlermeldung erhalten:

Run-time error '1004': Method '_Default' of object 'Range' failed.

+2

Google 'For-Schleife vba' Ihre Schleife ist falsch. Die for-Schleife sollte vor und die nächste nach IF nicht innerhalb der if. –

+0

Nach dem zweiten Blick ist die For-Loop-Logik offensichtlich fehlerhaft, danke für den Hinweis! – hallkevi

Antwort

4

Nun habe ich indented your code hoffentlich können Sie sehen, dass Ihre Logik außerhalb Ihrer For Schleife ist, wenn es in es sein sollte.

Sie erhalten einen Fehler, weil bei der Deklaration i As Long mit dem Wert 0 initialisiert wird. Daher wird diese Linie scheitern, weil i = 0 Rückkehr ist keine gültige Bereich:

If Cells(i, 26).Value < x Then 

Also das versuchen:

Sub Button10() 
    Dim i As Long 
    Dim x As Integer 
    x = Range("AD2").Value 
    For i = 1 To 500 
     If Cells(i, 26).Value < x Then 
      Cells(i, 26).Font.Color = vbRed 
     End If 
    Next i 
End Sub 
+1

Kudos zum Verknüpfen mit Rubberduck's Indenter-Seite. Beachten Sie, dass der OP-Code in die [Inspektions-Seite] (http://rubberduckvba.com/inspections/list) eingefügt werden muss (mit etwas Geduld ... ist der Web-gehostete Build ziemlich langsamer als eine tatsächliche In-IDE Rubberduck-Installation) , würde mehr Probleme aufdecken, die knurren und ihre Zähne zeigen, auf eine Gelegenheit warten, das OP im ... Hinterteil zu beißen. –

+0

Danke für die Klärung! Ich kann sehen, dass die For-Loop-Logik zusammen mit der If-Anweisung bei meiner alten Anordnung keinen Sinn ergibt. Danke auch für das großartige vba-intender Werkzeug, werde es benutzen :). – hallkevi

Verwandte Themen