【发布时间】:2018-01-09 16:29:59
【问题描述】:
我正在从 Excel 执行邮件合并,这完全符合我的需要。我的问题是我想对用户隐藏单词,而这并没有发生。我最终在屏幕上出现了一个我不想要的空单词实例。
这是我的语法 - 为什么我无法在进程完成后完全隐藏和关闭单词?
Dim wdapp As Word.Application, wdDoc As Word.Document, wdMaiMerge As Word.MailMerge
'Setting refs
Set wdapp = CreateObject("Word.Application")
Set wdDoc = wdapp.Documents.Open(wdpath)
Set wdMailMerge = wdDoc.MailMerge
'hiding display from user
wdapp.Visible = False
'Setting mail merge
With wdMailMerge
.OpenDataSourcexxxx, ReadOnly:=False, LinkToSource:=True, AddToRecentFiles:=False
.Execute
End With
'Finishing
Set wdapp = Nothing
wdapp.Quit
【问题讨论】:
-
您应该先退出应用程序 (
wdapp.Quit),然后再发布对它的引用 (Set wdapp = Nothing)。 -
@destination-data - 仍然给我留下空白的单词窗口。并且用户可以看到单词
-
您的代码是否包含任何错误处理?这行
wdapp.Visible = False之后wdapp.Visible的值是多少? -
@destination-data - 没有错误处理...仍在尝试解决错误。如果我在该行之后直接执行 debug.print wdapp.Visible 它会打印 false
-
到@destination-data 点,删除它实际执行邮件合并的部分,看看您是否留下了一个悬挂的Word 实例。另外,在
wdApp.Quit之前添加wdDoc.Close False看看是否有帮助。
标签: vba excel excel-2013 word-2013