2017-09-22 38 views
0

我不明白为什么我不能在VBA比较的数组。我创建了一个数组,开始0 1 2 3.我添加了一个比较,因为下标错误试图比较0到0 - 1,所以它只能在1开始比较并继续。现在我收到一个类型不匹配13,我不知道为什么数据类型不同/不工作。我猜我在for循环不被认为是一个int或东西? 它未能在CoordinatesArray(ⅰ)= CoordinatesArray(I-1)类型不匹配阵列位置比较VBA的

代码:

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) 
     If i > 0 Then 
      If CoordinatesArray(i) = CoordinatesArray(i - 1) Then 
       coordx1 = (vLines(7)) 
+3

甲小评:我注意到你使用TimWilliams的答案,但没有将其标记为正确。请回答您的问题,并通过点击答案中的复选标记来标记那些正确的答案。如果您未能提供反馈,其他用户将不再回答您的问题。 –

回答

2

你将需要每个值分别交错数组中比较:

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) 
    If i > 0 Then 
     If CoordinatesArray(i)(1) = CoordinatesArray(i - 1)(1) And _ 
      CoordinatesArray(i)(2) = CoordinatesArray(i - 1)(2) And _ 
      CoordinatesArray(i)(3) = CoordinatesArray(i - 1)(3) Then 
      coordx1 = (vLines(7))