我有以下代码来打开我开发的 Excel 工作簿应用程序的手册:
Sub OpenManual()
'Word.Application.Documents.Open "\\filePath\FormFlow To MSExcel\FeedSampleReport-Manual.docx"
Dim objWord As Object
Set objWord = CreateObject("Word.Application")
objWord.Visible = True
objWord.Documents.Open "\\filePath\FormFlow To MSExcel\FeedSampleReport-Manual.docx"
End Sub
这给了我两个问题:
- 文档打开,但在后台。用户不知道文档已打开,除非他们知道在任务栏中检查 Microsoft Word。
- 当我尝试关闭我收到的 word 文档时: 此文件正在被另一个应用程序或用户使用。(C:\Users\Me\AppData...\Normal.dotm)
当我在该对话框上单击确定时,我会收到一个“另存为”屏幕。
如果我取消它并尝试关闭空白的 Microsoft Word 实例,我会得到:
已进行影响全局模板 Normal 的更改。是否要保存这些更改?
然后,如果我单击否,一切最终都会关闭。
谁能帮我解决这两个问题?我需要以某种方式释放对象吗?以前从未见过这种情况。
编辑:
尝试@Layman-Coders 方法后:
Sub OpenManual()
'Word.Application.Documents.Open "\\filePath\FormFlow To MSExcel\FeedSampleReport-Manual.docx"
'Open an existing Word Document from Excel
Dim objWord As Object
Set objWord = CreateObject("Word.Application")
objWord.Visible = True
' Should open as the forefront
objWord.Activate
'Change the directory path and file name to the location
'of the document you want to open from Excel
objWord.Documents.Open "\\filePath\FormFlow To MSExcel\FeedSampleReport-Manual.docx"
objWord.Quit
Set objWord = Nothing
End Sub
当我打开另一个 word 文档并单击按钮时,会发生以下情况:
- 手册在最前面打开,但我立即收到
This file is in use by another application or user. (C:\Users\Me\AppData\...\Normal.dotm)
- 我按 OK 并收到 Save As 对话框。
- 取消“另存为”对话框并显示我的手动文档。
- 当我单击红色 X 关闭文档时,我收到
Changes have been made that affect the global template, Normal. Do you want to save those change?
我单击否并且文档关闭。
如果此文档是我打开的单词的第一个实例:
- 文档打开。
- 一旦代码到达该
objWord.Quit
行,文档就会立即关闭。
我只是希望文档在最前面打开,允许用户在需要时查看手册以获得帮助,并让他们自行决定关闭文档。