2015-04-21 3 views
0

Мне сложно разобраться, как печатать группу - скажем, три - массивы один за другим.Печатать массивы один за другим

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, но все это делает нажать на печать А5 (если у = 2). Я знаю, что мне нужно увеличиваться, я просто не знаю, как это сделать.

Edit: Вот мой основной фрагмент кода:

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 я создаю суб, который печатает (только для экспериментальных целей). Однако они перекрываются.

+1

Помогло бы показать больше вашего кода. –

+0

@TimWilliams Извините, я забыл добавить его раньше. – NRH

ответ

0

Я только что осознал свою ошибку .. и это связано с путаницей имен переменных.

Урок здесь - не иметь ужасных и подобных имен переменных.

Смежные вопросы