尝试在指定位置打开Word应用程序,编辑,保存,并且需要检查用户是否输入了正确的文件名。 这是我的代码
Dim Doc
Dim DocPath
Dim DocObj
Dim VarResult
DocPath = "C:\MyFolder\MyDocument.doc"
Set DocObj = CreateObject("word.Application")
Doc = DocObj.Documents.Open(DocPath)
DocObj.Visible = True
打开文档后,我正在做一些更改
With Doc.ActiveDocument
Set myRange = .Content
With myRange.Find
.Execute FindText:="FindText", ReplaceWith:="ReplaceText", Replace:=2
End With
End With
现在,我在saveas文件中遇到了问题。我用了两种替代方法, 1:GetSaveAsFilename,2:SaveAs。我需要出现saveas对话框(包含所有DefaultLocation,InitialFilename,DocumentType,Title属性)。无论用户是否给出了取消按钮,用户都需要选择和验证相同的内容。
varResult = Doc.GetSaveAsFilename( _
FileFilter:="DP Document (*.doc), *.doc, DP Document (*.docx), *.docx", Title:="Save DP", initialvalue:="InitialDocument")
If varResult <> False Then
MsgBox "File choosen = " & varResult
Else
MsgBox "Please select the file"
End If
收到运行时错误。提前谢谢。
答案 0 :(得分:0)
根据此Microsoft Article,&#34;如果将CreateObject函数与Word.Application或Word.Basic类型的对象一起使用,则如果Word已在运行,则该函数将失败。&#34;失败由运行时错误指示。 Microsoft建议您检查Word是否已在运行。如果不是,请启动Word的新实例。&#34;例如,您可以使用&#34; GetObject函数来创建Word.Application对象。如果GetObject函数失败,则Word未运行,因此CreateObject函数用于设置Word.Application对象。&#34;链接文章中提供的代码如下:
Sub RunWord()
Dim wObj As Word.Application
On Error Resume Next
' Get existing instance of Word if it exists.
Set wObj = GetObject(, "Word.Application")
If Err <> 0 Then
' If GetObject fails, then use CreateObject instead.
Set wObj = CreateObject("Word.Application")
End If
' Add a new document.
wObj.Documents.Add
' Exit Word.
wObj.Quit
' Clear object memory.
Set wObj = Nothing
End Sub