多个变量到单维数组VBA



我不知道如何将多个坐标放入VBA中的单个维数组中以稍后使用。这是我将值添加到坐标数组中的代码的一部分。我不知道如何将X,Y,Z数据添加到单个维数组中。我尝试了不同的方法,但即使是字符串也无法显示多个值。

此代码的目的是使用坐标数据通过传递坐标数组来输入另一个函数。在代码的这一部分中,我正在从草图中获取坐标数据,该坐标数据具有X,Y,Z数据的6,7,8的VLINE函数。我想将所有这些X,Y,Z数据保存在coordinatesArray中,以后我将访问。我应该真的在XYZ数据还是字符串中使用另一个数组?访问的好方法是什么,或者我应该在坐标数和三个位置的4D数组中制作一个4D数组?

我希望坐标数组为

坐标(1)= x1,y1,z1

坐标(2)= x2,y2,z2

坐标(n)= xn,yn,zn

For i = 0 To NumLines - 1
        coordx1 = (vLines(12 * i + 6))
        coordy1 = (vLines(12 * i + 7))
        coordz1 = (vLines(12 * i + 8))
        CoordinatesArray(i) = coordx1 & "" & coordy1
        'CoordinatesArray(i) = CStr(coordx1) & CStr(coordy1) & CStr(coordz1)
        Debug.Print "Coordinate Array = "; CoordinatesArray(i)
        Debug.Print "  Line(" & i & ")"
        Debug.Print "    Start = (" & vLines(12 * i + 6) * 1000# & "," & vLines(12 * i + 7) * 1000# & "," & vLines(12 * i + 8) * 1000# & ") mm"
        Debug.Print "    End   = (" & vLines(12 * i + 9) * 1000# & "," & vLines(12 * i + 10) * 1000# & "," & vLines(12 * i + 11) * 1000# & ") mm"
    Next i

作为"锯齿状阵列"(数组数组)

For i = 0 To NumLines - 1
        coordx1 = (vLines(12 * i + 6))
        coordy1 = (vLines(12 * i + 7))
        coordz1 = (vLines(12 * i + 8))
        CoordinatesArray(i) = Array(coordx1, coordy1, coordz1)
Next i

访问:

Debug.Print CoordinatesArray(5)(0) 'x
Debug.Print CoordinatesArray(5)(1) 'y
Debug.Print CoordinatesArray(5)(2) 'z

作为2-D数组

Redim CoordinatesArray(1 to NumLines, 1 to 3) 
For i = 0 To NumLines - 1
        coordx1 = (vLines(12 * i + 6))
        coordy1 = (vLines(12 * i + 7))
        coordz1 = (vLines(12 * i + 8))
        CoordinatesArray(i, 1) = coordx1
        CoordinatesArray(i, 2) = coordy1
        CoordinatesArray(i, 3) = coordz1
Next i

访问:

Debug.Print CoordinatesArray(5, 1) 'x
Debug.Print CoordinatesArray(5, 2) 'y
Debug.Print CoordinatesArray(5, 3) 'z

,或者您可以使用字段x,y和z创建自定义类型或类,并创建一个数组。

最新更新