在将数据添加到数组后,可能需要使用两个for循环
这样做的问题是从数组中删除数据有点复杂。我这样做的方式是创建一个类型数组
- Public Type typPLinesArray
- MyHandle As String
- MyLineTypeScale As String
- Used As Integer
- MyStartPointX As Double
- MyStartPointY As Double
- MyStartPointZ As Double
- MyEndPointX As Double
- MyEndPointY As Double
- MyEndPointZ As Double
- End Type
在代码中,您还需要创建要使用的数组,因为我们只定义了上面的类型:
- Dim MyPLinesArray2() As typPLinesArray
现在用您的数据填充MyPLinesArray2(),设置每个字段
根据需要调整…您将为您在类型
中定义的每个区域提供一个下拉列表 -
- MyPLinesArray2(PolyLinesFound2).MyHandle = MyLWPoly.Handle
- MyPLinesArray2(PolyLinesFound2).MyLineTypeScale = MyLWPoly.LinetypeScale
- MyPLinesArray2(PolyLinesFound2).Used = 0
- MyPLinesArray2(PolyLinesFound2).MyStartPointX = PolyStartPoint(0)
- MyPLinesArray2(PolyLinesFound2).MyEndPointX = PolyEndPoint(0)
- MyPLinesArray2(PolyLinesFound2).MyStartPointY = PolyStartPoint(1)
- MyPLinesArray2(PolyLinesFound2).MyEndPointY = PolyEndPoint(1)
- MyPLinesArray2(PolyLinesFound2).MyStartPointZ = PolyStartPoint(2)
- MyPLinesArray2(PolyLinesFound2).MyEndPointZ = PolyEndPoint(2)
请注意“用作整数”行
一旦我使用了该值,我会将其值更改为1,因此我知道我已经使用了它。当然,您必须为此编写一行代码
- If MyPLinesArray2(X).Used = 0 Then
一旦您的阵列(基于您自己的个人类型)被填充/变暗,您就可以处理它了。
基本轮廓是:
- For X = 0 To UBound(MyPLinesArray2)
- Num1 = MyPLinesArray2(X).MyStartPointX
- 'Whatever you are looking for...
- For Y = 0 To UBound(MyPLinesArray2)
-
- If MyPLinesArray2(Y).Used = 0 Then
- Num2 = MyPLinesArray2(Y).MyStartPointX
- MyString = MyString & "," & Trim(Str(Num2))
- MyPLinesArray2(Y).Used = 1
- End if
- Next
- Next
您需要添加大量代码,第一次通过条件检查构建字符串,可能需要两个不同的.used列,.used1和.used2,以及在重新开始时将其中1个重置为0的代码。 |