更改excel中的默认另存为位置而不保存工作簿
我有一个工作簿,我正在从另一张纸上创建,用于检查仪器是否需要校准。如果不需要校准,则无需保存校准测试表,理想情况下不应保存 如果需要校准,则我需要将校准表保存到特定文件夹中 我想要的是一个脚本,它设置了saveas位置,因此如果用户想要保存文件,那么它将在正确的位置打开,允许手动控制保存,可能在10或20分钟后,例如由通常的file>save-As方法触发。这意味着我不想在宏中保存。很抱歉,如果最初不清楚 我找不到任何函数来执行此操作,Application.DefaultFilePath=savelocation不起作用,因为我正在打开一个现有模板,因此默认位置始终是现有模板更改excel中的默认另存为位置而不保存工作簿,excel,vba,Excel,Vba,我有一个工作簿,我正在从另一张纸上创建,用于检查仪器是否需要校准。如果不需要校准,则无需保存校准测试表,理想情况下不应保存 如果需要校准,则我需要将校准表保存到特定文件夹中 我想要的是一个脚本,它设置了saveas位置,因此如果用户想要保存文件,那么它将在正确的位置打开,允许手动控制保存,可能在10或20分钟后,例如由通常的file>save-As方法触发。这意味着我不想在宏中保存。很抱歉,如果最初不清楚 我找不到任何函数来执行此操作,Application.DefaultFilePath=sa
我在工作簿中运行了ChDir,然后转到“文件”>“另存为”,但它不会更改任何内容,它仍然会打开保存当前主文件的文件夹。Application.GetSaveAsFileName对我没有用处,因为我知道它保存在哪里以及要保存在哪里,我只是不想导航到那里,冒着保存到错误文件夹的风险。我从您的查询(也是您的问题标题)中了解到,您不想保存,而是设置了默认路径。仅当用户希望保存时,才应将其保存在该目录中。如果我的理解是正确的,那么您必须使用ChDir设置路径 比如说
ChDir "D:\TMP"
更多来自Excel的帮助
ChDir声明
更改当前目录或文件夹
语法
ChDir路径
必需的路径参数是一个字符串表达式,用于标识哪个目录或文件夹将成为新的默认目录或文件夹。路径可能包括驱动器。如果未指定驱动器,ChDir将更改当前驱动器上的默认目录或文件夹
评论
ChDir语句更改默认目录,但不更改默认驱动器。例如,如果默认驱动器为C,则以下语句会更改驱动器D上的默认目录,但C仍然是默认驱动器:
编辑:
关于手动控制保存,您可以将ChDir与上面评论中提到的Application.GetSaveAsFileName合并
评论的后续行动
这就是我尝试过的,而且很有效
Sub Sample()
ChDir "C:\Temp"
ret = Application.GetSaveAsFilename( _
fileFilter:="Excel Files (*.xlsx), *.xlsx")
End Sub
即使我这样做了
Sub Sample()
ChDir "C:\Temp"
End Sub
然后手动尝试使用文件另存为保存它,它将在我指定的文件夹中打开
更多后续行动
在聊天室中讨论并使用teamviewer之后,我们意识到问题在于网络路径,因此替代方法是取消SaveAs并在类模块中重新编写我们自己的
Option Explicit
Private Sub App_WorkbookBeforeSave(ByVal Wb As Workbook, ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim ret
ChDrive "O"
ChDir "O:\AQS\03 AQS Customers\Calibration Check\Temp"
If SaveAsUI = True Then
Cancel = True
ret = Application.GetSaveAsFilename(fileFilter:="Excel Files (*.xls*), *.xls*")
'
'~~> Rest of the code to save the file
'
End If
End Sub
这对我很有用:
Sub SaveWorkbookToDifferentDirectoryWithoutChangingFilename()
ChDrive "Y"
ChDir "Y:\Existing File Name"
ActiveWorkbook.SaveAs
End Sub
请参阅Application.GetSaveAsFileName函数的详细信息?InitialFilename参数应该允许您指定默认路径。@Siddharth您能解释一下为什么它不是重复的吗?@ShadowWizard:当然:这个问题不是关于保存文件,而是设置默认路径。读我答案的前三行。上面给出的链接是关于使用saveas保存文件的。谢谢@SiddharthRout。我已经尝试过了,它没有改变任何东西。让我试着澄清我需要执行的操作的最后一部分。我将命令运行到一个存在的文件夹,然后在退出子使用的文件>另存为之前,它仍然打开了文件的现有位置,就像我说的,上面的代码经过了尝试和测试。我希望你没有试图改变驱动器?看到了吗?我没有投任何人的反对票!你的评论总是很有帮助的。子测试ChDrive C ChDir C:\Maconomy End Sub I逐步完成此操作,然后在现有打开的工作簿中单击另存为。它被打开会有责任吗?哦,我以为你有责任:D