2012-02-14 71 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

相关问题