Object不支持使用If-Then语句

时间:2016-09-09 21:33:35

标签: excel-vba runtime-error vba excel

我正在尝试将数据表中的信息提取到数组中,但我只想要符合条件的数据。我的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

1 个答案:

答案 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