我正在尝试将数据表中的信息提取到数组中,但我只想要符合条件的数据。我的IF语句不断抛出这个错误,现在让我头疼了一个小时。任何建议表示赞赏!
Dim InputArray() As String
Dim i As Integer, j As Integer, r As Integer, m As Integer, k As Integer
ReDim InputArray(1 To 798, 1 To 22)
LoopStart:
For m = 1 To 866
Sheets("Base").Activate
If Sheets("Base").Cell(m + 1, 23) = 6 Then GoTo Line1 <<This line throws the error
Line1:
k = UBound(InputArray, 1) + 1
For j = 1 To 22
InputArray(k, j) = Sheets("Base").Cell(m + 1, j).Value
Next j
Next m
'GoTo LoopStart
End Sub
答案 0 :(得分:0)
下面的代码仅指您上传的代码部分,如果您可以上传其余的Sub
,则可能会提供更好,更清晰的解决方案。
与@Tony Dallimore一样,将Cell
更改为Cells
,同时声明BaseSht As Worksheet
以删除可能的错误,以及稍后使用With BaseSht
。
不确定您找到的原因Line1
是否已将其放入代码中,即使If .Cells(m + 1, 23).Value = 6
失败,它仍会转到下一行,即k = UBound(InputArray, 1) + 1
和{ {1}}循环之后。
如果您已经分享了工作表和数据的结构,可能会将For
更改为动态 LastRow ,并使用For m = 1 To 866
,其中 LastRow 是一个随着您拥有的行数而动态变化的数字。
For m = 1 To LastRow