gpt4 book ai didi

EXCEL VBA 在指定位置打开 Word、编辑和另存为。

转载 作者:行者123 更新时间:2023-12-04 21:00:20 27 4
gpt4 key购买 nike

我正在尝试在指定位置打开 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

现在,我在另存为文件时遇到了问题。我使用了两种替代方法,
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

我收到运行时错误。提前致谢。

最佳答案

据此Microsoft Article , "如果您将 CreateObject 函数与 Word.Application 或 Word.Basic 类型的对象一起使用,如果 Word 已在运行,则该函数将失败。"失败由运行时错误指示。 Microsoft 建议您“检查 Word 是否已在运行。如果没有,请启动 Word 的新实例。”例如,您可以使用“GetObject 函数创建 Word.Application 对象。如果 GetObject 函数失败,则 Word 未运行,因此使用 CreateObject 函数设置 Word.Application 对象。”链接文章中提供的代码如下:

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

关于EXCEL VBA 在指定位置打开 Word、编辑和另存为。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37536895/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com