【发布时间】:2019-04-30 13:56:30
【问题描述】:
我正在尝试从 excel 打开 word 文档,然后使用对话框另存为新的文件位置。
问题是它保存的是excel文件而不是打开的word文件。
Option Explicit
Sub SaveWordDoc()
Dim WordApp As Object, WordDoc As Object, path As String
Dim dlgSaveAs As FileDialog
' Allows word document to be selected and opened
With Application.FileDialog(msoFileDialogOpen)
.Show
If .SelectedItems.Count = 1 Then
path = .SelectedItems(1)
End If
End With
If path = "" Then
Exit Sub
End If
Set WordApp = CreateObject("Word.Application")
Set WordDoc = WordApp.Documents.Open(path)
WordApp.Visible = False
'Opens Save As dialog box
Set dlgSaveAs = Application.FileDialog( _
FileDialogType:=msoFileDialogSaveAs)
dlgSaveAs.Show
WordApp.ActiveDocument.Close
WordApp.Quit
Set WordApp = Nothing
Set WordDoc = Nothing
End Sub
【问题讨论】:
-
Application.FileDialog中的Application指的是 Excel 实例。如果您想继续在 Excel 中使用对话框(而不是利用WordApp实例),也许可以尝试Application.GetSaveAsFilename方法,该方法在不保存任何文件的情况下获取文件名。然后使用它返回的文件名使用SaveAs2方法保存WordDoc。 -
尝试 'Set dlgSaveAs = WordApp.Application.FileDialog( _ FileDialogType:=msoFileDialogSaveAs) dlgSaveAs.Show' 以使用文件对话框。要将 word 文档保存到您从使用 WordDoc.SaveAs2 获得的同一文件夹中。