2016-07-26 7 views
0

私はVBAコードを書くのが初めてで、私がやろうとしていることに非常に似ているこのコードをオンラインでご覧になっています。しかし、実行しようとすると、行Loop While Not c Is Nothing And c.Address <> firstAddressがハイライト表示され、「オブジェクト変数またはブロック変数が設定されていません」というメッセージがポップアップします。Excel VBAコード

誰でもこれを解決する方法を知っていますか?どんな助けでも大歓迎です!

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 

答えて

2

あなたは数2を探して、それはそれらのすべてを変更しています後は5にそれを変更している、それがループ内で再び先頭から検索を続けますが、cは何も等しくないことがある問題を(として何も見つかりませんでした)、2回目にエラーが発生し、c.Address <> firstAddressを評価しようとしました。

あなたは数字を交換しているとして、私はその部分を削除したいし、ちょうどあなたが値を変更し、ちょうどあなたがc.Address <> firstAddressを含める必要があります彼らのために見ていない場合は、一方Loop While Not c Is Nothing

を残します無限ループに陥るのを止めるために。

+0

ブリリアント!迅速、有用な応答ありがとう:) –