【发布时间】:2018-07-28 14:24:32
【问题描述】:
我遇到了数组边界问题。我有 3 个工作表。前 2 个将我转换为两个数组(array1 和 array2),然后在它们之间进行计算以创建第三个。问题是我不确定第三个数组的边界是什么,因为它总是会根据输入而变化。
我一直在使用 Dim array3 (5000, 5) 和 5000 行(第一维)的虚拟对象,因为我认为不会有更多。有没有办法创建没有边界的数组,然后向其中添加信息,然后调暗尺寸?
我创建的宏也使用了这段代码---
Z = 1
For x = 1 To UBound(array1, 1)
For y = 1 To UBound(array2, 1)
If array1(x, 4) = 0 Then
GoTo Line1
End If
If array1(x, 1) = array2(y, 1) And array1(x, 2) = array2(y, 3)Then
If array1(x, 4) > array2(y, 5) Then
array3(z, 1) = array1(x, 3)
ElseIf array1(x, 4) = array2(y, 5) Or array1(x, 4) < array2(y, 5) Then
array3(z, 1) = array1(x, 3)
End If
z = z + 1
End If
Next y
Line1:
Next x
它需要一段array1并通过array2循环它并在array3中创建一个结果
基本上当 array1(x, 4) = 0 时,我需要它移动到下一个 X。如果没有 GoTO Line1,我无法弄清楚如何循环它。如果我将它向下移动,那么它将继续循环通过 arry2 (y),而不是继续移动到下一个 X。如果我将它移动到上面,那么 y 将重置并再次通过 For y 循环
【问题讨论】: