2016-07-26 4 views
0

Ich bin neu zu schreiben VBA-Code und bin auf diesen Code unten online gestoßen, die sehr ähnlich zu dem, was ich versuche, zu tun. Wenn ich versuche, es auszuführen, wird jedoch die Zeile Loop While Not c Is Nothing And c.Address <> firstAddress hervorgehoben und eine Meldung erscheint, dass "Object variable oder With block variable nicht gesetzt" ist.Excel VBA Codes

Kann jemand das beheben? Jede Hilfe wird sehr geschätzt!

Sub Commodity() 
' 
' Commodity Macro 
' Commodity 
' 
' 
With Worksheets(1).Range("a1:a500") 

    Set c = .Find(2, LookIn:=xlValues) 
    If Not c Is Nothing Then 
     firstAddress = c.Address 
     Do 
      c.Value = 5 
      Set c = .FindNext(c) 
     Loop While Not c Is Nothing And c.Address <> firstAddress 
    End If 
End With 

End Sub 

Antwort

2

Das Problem ist, dass Sie für die Nummer 2 und ändert es zu 5. freuen Sobald es alle von ihnen geändert wird es wieder in der Schleife von oben die Suche wird fortgesetzt, aber c wird nichts gleich (wie (es konnte nichts finden) zum zweiten Mal um den Fehler verursacht, wenn es versucht, c.Address <> firstAddress auszuwerten.

Wie Sie die Zahlen sind zu ersetzen würde ich diesen Teil entfernen und nur Loop While Not c Is Nothing

Auf der anderen Seite lassen, wenn Sie nicht Werte zu ändern und einfach nur für sie Sie die c.Address <> firstAddress umfassen müssen um es in einer Endlosschleife stecken zu bleiben.

+0

Brilliant! Danke für die schnelle, hilfreiche Antwort :) –