如何在VBA中为另存为操作设置特定的默认目录

如何在VBA中为另存为操作设置特定的默认目录,vba,ms-access,ms-word,Vba,Ms Access,Ms Word,我们有一个MS Access软件,我们需要能够从中保存MS Word文档。使用VBA在word中获取“另存为”对话框没有问题,但是否可以将默认目录更改为VBA中指定的路径?它只是在桌面上保存为默认值 编辑:对于第一个答案: 您只需将想要的文件名添加到对话框中即可: Application.GetSaveAsFilename("c:\temp\myfile") 这将打开临时文件夹中的对话框,并建议将myfile作为文件名 有关对话框中其他可修改的内容,请参见此处:您可以使用Application

我们有一个MS Access软件,我们需要能够从中保存MS Word文档。使用VBA在word中获取“另存为”对话框没有问题,但是否可以将默认目录更改为VBA中指定的路径?它只是在桌面上保存为默认值

编辑:对于第一个答案:


您只需将想要的文件名添加到对话框中即可:

Application.GetSaveAsFilename("c:\temp\myfile")
这将打开临时文件夹中的对话框,并建议将myfile作为文件名


有关对话框中其他可修改的内容,请参见此处:

您可以使用Application.FileDialog请求用户提供保存到以下位置的路径:

Dim ofd As Office.FileDialog
Set ofd = Application.FileDialog(msoFileDialogSaveAs)
ofd.Title = "Save As..."
ofd.InitialView = msoFileDialogViewList
ofd.InitialFileName = "c:\temp\myfile"

' Show Dialog and abort if user clicks cancel:
If (ofd.Show = 0) Then Exit Sub

MsgBox ofd.SelectedItems(1) ' shows the selected filename

使用该路径直接保存word文档。

为什么我得到负1?不,我不能用那个命令。它说该命令不能通过access在word中使用。Application.GetSaveAsFilename()是Office 2010中新增的。如果您使用的是2007,则它不在那里。@Emil:如果您的代码是Access VBA代码,“应用程序”将是Access应用程序。您将需要对Word应用程序的引用来发布GetSaveAsFilename(如果它确实存在,正如Oliver所指出的)@bidabia:遗憾的是,在各种Office Suite应用程序中,通过应用程序对象提供的这些功能非常不一致。Excel拥有它很长时间了,而Access仍然没有。使用Office库提供的FileDialog更为一致,因为您可以通过VBA以相同的方式在所有应用程序中使用它。它是Office 2010。让VBA激活MS Word,然后激活“另存为”对话框不是问题。唯一的问题是让它在一个特定的文件夹中启动。如果给定文件名,则可以在文件夹中执行另存为。。。所以这一定是可能的,因为每个类似的任务都是…:奥利弗。您的注释工作正常,但它另存为access。不是MS word文档。如何激活word窗口并执行相同的过程?如果代码在Access中运行,则无法远程控制word另存为对话框。我的示例只返回可以用于在Word文档上调用.SaveAs()的路径。哦,好吧,太遗憾了。你想不出有什么办法让别人来做这件事?我们还需要其他程序(Mathcad、SolidWorks、Ansys、Excel)