下标超出范围(小比较并返回其他阵列)

时间:2018-01-18 00:35:56

标签: arrays excel vba excel-vba

我创建了以下代码。我想验证我的arry1是否等于“Gi0”。如果正确则复制到新的arry2,但随后出现以下错误:

  

下标超出范围

有人可以解释我有什么问题吗? 用:

arry2(k, 1) = arry1(i, 1)



Private Sub CommandButton1_Click()
Dim arry1() As Variant
ReDim arry2(1 To 20, 1 To 1)

arry1 = Sheets("Sheet1").Range("B2:B65").Value

k = 1
For i = 1 To UBound(ar1)
If Left(arry1(i, 1), 3) = "Gi0" Then
arry2(k, 1) = arry1(i, 1)
k = k + 1
Else
End If
Next i
End Sub

1 个答案:

答案 0 :(得分:0)

你有Ubound(ar1),你的数组名为arry1。

此外,您不需要在IF中使用ELSE语句。

这是调暗或重新编目阵列的好方法吗?我不这么认为。

如果我想让arry2成为一个21乘2的数组,那么我说

dim arry2(20,1) as double.

如果你想根据变量调暗我说:

dim arry2() as double
redim arry2(x,y)