我正在将.xml文件读入excel并将节点粘贴到单元格中,但对于一个简单的过程来说似乎相当缓慢(500个单元格约为20秒)。有没有办法让这个VBA代码更快?似乎应该有一种避免使用循环的方法,但我对VBA代码不是很熟悉。
Set oXMLFile = CreateObject("Microsoft.XMLDOM")
oXMLFile.Load (File)
Dim SN_Node As IXMLDOMNode
' Update Serial Number
i = 1
Set ColNodes = oXMLFile.SelectNodes("/Signal/SN_")
For Each SN_Node In ColNodes
Range("I" & i).Value = SN_Node.Text
i = i + 1
Next
答案 0 :(得分:0)
经验丰富的VBA编码器会告诉您一个非常重要的规则:切勿在循环中更新,读取或引用单元格。始终使用数组。 myArray = Range(“ myRange”)现在通过myArray循环。在您的情况下,您将使数组变暗。由于您可能不知道大小,因此可能不得不使用redim保留。要输出阵列,请选择一个单元格并使用调整大小功能。范围(“ A1”)。resize(ubound(myArray),ubound(myArray,2)= myArray。现在您握着闪电。