我打开了一个Word文档,里面有表格,从访问中使用VBA。我想添加一个新行并在该行中写一些内容。我写了一些代码但该代码仅在调试模式下工作。一旦我清除所有断点并让程序运行,我就会遇到问题。看来这个单词只会将数据写入第一行。请帮忙。
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 :(得分: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
...然后它似乎在调试和正常运行中都能正常工作。这是在Office 2010中。
我的猜测是你对myarray()有一些陌生感 - 如果它实际上不是Range对象的数组,那么尝试显式设置.Range.Text就像我在我的代码中所做的那样我打赌它会是快乐。
克里斯