2010-10-15 28 views
1

我打开了一个Word文档,其中有表格,从访问中使用VBA。我想添加一个新行并在该行写入一些内容。我编写了一些代码,但代码只在调试模式下工作。只要我清除所有的中断点并让程序运行,我就会遇到问题。看来这个词只会将数据写入第一行。请帮助在word文件中的表的rows.count问题

for j = 0 to 5 

    oDoc.tables(1).rows.Add 
    for k=0 to 5 
    oDoc.tables(1).cell(oDoc.tables(1).rows.count,k+1)=myarray(k) 
    next k 

    do something to myarray 
next j 
+0

作为访问所有的时间的人谁的方案,但与Word对象模型基本上是陌生的,我通常的做法,以自动运行Word是使用宏录制器来找出如何我想做的代码自动化。也就是说,设置你的Word文档,打开宏记录器,并通过自动执行你想要执行的动作。停止记录器,然后检查代码。这可能会揭示你需要做什么。 – 2010-10-16 16:42:30

+0

您是否听说过代码中的评论?关于使用oDoc.tables(1)?您还应该展示如何对阵列进行DIM – 2011-01-12 20:16:47

回答

0

这是一个有些奇怪 - 我想如果你myArray的()是Range对象的数组,这似乎有点不可思议的代码才有效。如果我做一个3X1表我当前文档中,并运行下面的代码:

Sub x() 
For j = 1 To 5 
    ActiveDocument.Tables(1).Rows.Add 
    For k = 0 To 2 
     ActiveDocument.Tables(1).Cell(ActiveDocument.Tables(1).Rows.Count, k + 1).Range.Text = "hello" 
    Next k 
Next j 
End Sub 

...然后它似乎工作在调试和正常运行正常。这是在办公室2010年。

我的猜测是,你有一些陌生与myarray() - 如果它实际上不是一个Range对象的数组,然后尝试显式设置.Range.Text,因为我在我的代码我敢打赌它会更开心。

克里斯