2012-02-14 80 views
0

我得到運行該代碼的運行時錯誤:Excel 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 2012-02-14 12:26:04

+0

什麼是'FIng'? '我'的初始值是多少? – assylias 2012-02-14 12:26:49

+0

FIng被初始化爲十個元素數組。由於我只對行號(它總是大於零)感興趣,所以我必須先檢查。所有其他的Fing值都是零。但我不明白爲什麼這會導致錯誤。 – user366121 2012-02-14 12:32:50

回答

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 2012-02-14 13:40:17

相關問題