我很难弄清楚如何打印一组 - 比如说三个 - 一个接一个地排列。
Node A
Element 1
Element 2
Element 3
Node B
Element 1
Element 2
Element 3
Element 4
Node C
Element 1
Element 2
Element 3
每个节点都有不同的属性,因此我的代码设置为使用该特定属性转到每个节点并填充数组。但是当我去打印时,每个语句都与下一个语句重叠。我不知道如何打印阵列而不仅仅是移动起始单元。
例如,
Range("A" & j + 3).Value = WorksheetFunction.Transpose(myArray1)
Range("B" & j + 3).Value = WorksheetFunction.Transpose(myArray2)
我想开始在A3打印并按j
递增,但所有这一切都是将打印推送到A5(如果j = 2)。我知道我必须增加,我只是不知道如何。
编辑:这是我的主要代码块:
For i = 0 To (count - 1)
ReDim Preserve NodeIDArray(0 To count)
ReDim Preserve NodeVersionArray(0 To count)
ReDim Preserve NodeIDArray_v13(0 To count)
ReDim Preserve NodeIDArray_v14(0 To count)
ReDim Preserve NodeID_Version13(0 To count)
ReDim Preserve NodeID_Version14(0 To count)
ReDim Preserve NodeIDNameArray(0 To count)
ReDim Preserve CellIDArray(0 To count)
If NodeVersionArray(i) = "13" Then
NodeID_Version13 = NodeIDArray(i)
NodeIDArray_v13(i) = NodeID_Version13
Node_Version13 = NodeVersionArray(i)
NodeID_Version13(i) = Node_Version13
Set version13_loc = XMLFile.SelectNodes("/home/Equipment[@id='" & NodeID_Version13 & "' and @version='" & Node_Version13 & "']/room/cell")
Set version_13_count = XMLFile.SelectNodes("/home/Equipment[@version='13']")
For j = 0 To (version13_loc.Length - 1)
ReDim Preserve CellIDArray(0 To j)
ReDim Preserve NodeIDNameArray(0 To j)
ReDim Preserve CellIDNameArray13(0 To j)
ReDim Preserve NodeIDNameArray13(0 To j)
CellID = version13_loc(j).getAttribute("id")
NodeIDName = version13_loc(j).ParentNode.ParentNode.getAttribute("id")
CellIDArray(j) = CellID
NodeIDNameArray(j) = NodeIDName
v13Count = version_13_count.Length
Range("A" & j + 3).Value = WorksheetFunction.Transpose(NodeIDNameArray)
Range("B" & j + 3).Value = WorksheetFunction.Transpose(CellIDArray)
Next
Call PrintDatav13(NodeIDNameArray, CellIDArray, j, v13Count)
ElseIf NodeVersionArray(i) = "14" Then
NodeID_Version14 = NodeIDArray(i)
NodeIDArray_v14(i) = NodeID_Version14
Node_Version14 = NodeVersionArray(i)
NodeID_Version14(i) = Node_Version14
Set version14_loc = XMLFile.SelectNodes("/home/Equipment[@id='" & NodeID_Version14 & "' and @version='" & Node_Version14 & "']/room/cell/location")
For k = 0 To (version14_loc.Length - 1)
ReDim Preserve CellIDArray(0 To k)
ReDim Preserve NodeIDNameArray(0 To k)
ReDim Preserve CellIDNameArray14(0 To k)
ReDim Preserve NodeIDNameArray14(0 To k)
ReDim Preserve PurposeNameArray(0 To k)
PurposeName = version14_loc(k).Text
CellID = version14_loc(k).ParentNode.ParentNode.ParentNode.ParentNode.getAttribute("id")
NodeIDName = version14_loc(k).ParentNode.ParentNode.ParentNode.ParentNode.ParentNode.ParentNode.getAttribute("id")
If PurposeName = "Red" Or PurposeName = "Orange" Or PurposeName = "Blue" Then
CellIDArray(h) = CellID
NodeIDNameArray(h) = NodeIDName
PurposeNameArray(h) = PurposeName
h = h + 1
End If
Next
Call PrintDatav14(CellIDArray, NodeIDNameArray, PurposeNameArray, h)
Else
MsgBox ("Wrong Version")
End If
Next
Sub PrintDatav14(NodeIDNameArray, CellIDArray, PurposeNameArray, h)
Range("A3").Resize(h, 1).Value = WorksheetFunction.Transpose(NodeIDNameArray)
Range("B3").Resize(h, 1).Value = WorksheetFunction.Transpose(CellIDArray)
Range("C3").Resize(h, 1).Value = WorksheetFunction.Transpose(PurposeNameArray)
End Sub
因此对于版本13(在第一个IF之后)我尝试在声明之后打印。对于版本14,我创建了一个打印的子(仅用于实验目的)。然而,它们重叠。
答案 0 :(得分:0)
我刚刚意识到我的错误..而且由于变量名称混淆了。
这里的教训是没有可怕的和类似的变量名称。