我有一个关于VBA的奇怪的问题。我设计了一个潜水器来创建一份文字报告。我基本上有10个变量,一个带有模板图表的word模板文档,以及每个变量的三个带有数据的CSV文件。我循环遍历所有变量,对于每个变量,我创建页面,访问chartdata工作簿,并将外部CSV数据复制到chartdata工作簿中。
Sub createRep()
'open Word-template
for page=1 to 10
'Open external csv
'Open chartdata workbook
'Copy external data into chartdata workbook
'Close external csv files and chartdata workbook
Next page
End Sub它可以在一开始工作,但在某个页面,我会得到一个错误,因为粘贴不起作用。我也不能手动将任何内容复制到chartdata工作簿中,它似乎崩溃了,这就是粘贴失败的原因。但是,以下代码将起作用:
Sub createRep()
'open Word-template
for page=1 to 10
MsgBox page
'Open external csv
'Open chartdata workbook
'Copy external data into chartdata workbook
'Close external csv files and chartdata workbook
Next page
End Sub这就是消息框以某种方式修复它。但是为什么呢?
发布于 2015-12-17 23:24:21
这可能是因为您的代码在Word打开之前运行。当文档试图加载时,您在应用程序准备就绪之前已经在访问它了。你可以尝试的解决方法是添加DoEvents,或者如果这还不够,可以使用对WordApplication的引用:
While WordApplication.Busy = True
DoEvents
Wend希望这能有所帮助
-JDB
https://stackoverflow.com/questions/34337527
复制相似问题