2012-02-14 26 views
0

明確ではないが、私はこのコードを実行することにより、実行時エラーを取得:は、VBA実行時エラー1004エクセル - なぜ

For Each cell In Range("B1").EntireColumn.Cells 
     If cell.Value = ListBox1.Value Then 
      FIng(i) = cell.Row 
      i = i + 1 
     End If 
    Next cell 

    For i = 0 To UBound(FIng) 
     If Cells(FIng(i), 1).Value > 0 Then 'error: application defined 1004 
      MsgBox (Cells(FIng(i), 1).Value) 
     End If 
    Next i 

エラーがコメントに沿って発生します。私がやっていることは、特定の値が列にあるかどうかをチェックして、列の行を配列に保存することです。次のループでは、この配列を使用して最初の列の値にアクセスして表示します。それは動作しますが、私はこのエラーメッセージを受け取り、なぜか分かりません。

+0

あなたは '細胞(FING(I)、1).Value'をデバッグしようとしたのですか? – JMax

+0

「FIng」とは何ですか? 'i'の初期値は何ですか? – assylias

+0

FIngは10要素の配列として初期化されます。私は行番号(常にゼロより大きい)だけに興味があるので、最初にチェックする必要があります。他のすべてのFing値はゼロです。しかし、なぜこれがエラーを引き起こすのか分かりません。 – user366121

答えて

0

これは、ループの正しい秒です:

For i = 0 To UBound(FIng) 
    If FIng(i) > 0 Then 'error: application defined 1004 
     MsgBox (Cells(FIng(i), 1).Value) 
    End If 
Next i 
+0

あなたの 'If'はあなたの行が> 0であるかどうかをチェックすると思います(いつもそうでしょう)... – JMax

関連する問題