2013-05-29 28 views
2

下面是我的VBA代码,VBA:增加行数我的代码

For x = 0 To EleXML.ChildNodes.Length - 1  
     Range("A10" & x) = EleXML.ChildNodes.Item(x).getAttribute("aa") 
     Range("A10" & x) = EleXML.ChildNodes.Item(x).getAttribute("bb") 
     Range("A10" & x) = EleXML.ChildNodes.Item(x).getAttribute("cc") 
    Next x 

我的单元将从“A10”开头,怎么可以在我的代码中使用的“x”我的汽车增加了吗?所以,下一个循环应该是“A11”。

在此先感谢。

+0

如何:'范围( “A1” &STR(X))= ...'? – Leri

+0

我知道了...... Range(“A10”&x)= EleXML.ChildNodes.Item(x).getAttribute(“aa”) 范围(“A”activerow&x)= EleXML.ChildNodes.Item(x) .getAttribute(“bb”) Range(“B”activerow&x)= EleXML.ChildNodes.Item(x).getAttribute(“cc”) – user2144293

回答

1
For x = 0 To EleXML.ChildNodes.Length - 1  
     Range("A10").offset(x,0) = EleXML.ChildNodes.Item(x).getAttribute("aa") 
     Range("A10").offset(x,0) = EleXML.ChildNodes.Item(x).getAttribute("bb") 
     Range("A10").offset(x,0) = EleXML.ChildNodes.Item(x).getAttribute("cc") 
Next x 

我几乎总是使用在这些情况下Offsetdocumentation),因为它是非常,非常,非常比试图手动创建一个字符串范围更加清晰。

它使事情时,你迭代,并有类似

myRange.offset(rowOffset, colOffset) 

比几乎所有的替代品(如对方的回答还是那些张贴在评论)更清晰。

您还可以使用Cells(row, col)语法进行研究。

+0

enderland:谢谢你的回答。我如何将所有值对齐? – user2144293

+0

范围(“A10”)。offset(x,0).Horizo​​ntalAlignment = xlCenter'在for循环中 – ZorleQ

1

很简单:

For x = 0 To EleXML.ChildNodes.Length - 1  
    Range("A" & (10 + x)) = EleXML.ChildNodes.Item(x).getAttribute("aa") 
    Range("B" & (10 + x)) = EleXML.ChildNodes.Item(x).getAttribute("bb") 
    Range("C" & (10 + x)) = EleXML.ChildNodes.Item(x).getAttribute("cc") 
Next x 
+0

我建议不要将此作为长期计划。这种方法变得很难阅读,并在以后立即理解(特别是当事情变得更加复杂时),即使它有效。 – enderland

+0

对于较大的项目你可能是对的。我通常使用控制变量来指示起始行等。但是,您可以看到,要求的人在编程方面绝对没有经验,所以答案越简单越好。 – ZorleQ

+0

这个答案并不简单;) – enderland