【发布时间】:2019-04-02 06:53:53
【问题描述】:
我有很多不同名称的 excel 模板。其中之一称为 griep-weerstand v4.xlsb。但我的问题是关于所有模板的。
我想将文件名集成到设置默认保存目录和默认保存名称的保存脚本中。两者名称中都有空格。添加正确数量的引号后,默认保存目录设置正确,但是,我一直在努力将工作簿名称添加到脚本中。我尝试了几件事,但到目前为止都没有奏效。
默认保存目录为:M:\Commercie\Marktdata\IRi\Segment ontwikkeling
默认文件名(在本例中)为:griep-weerstand v4.xlsb
以下是我最后尝试的:
Sub save_workbook_name()
Dim workbook_Name As Variant
Dim location As String
Dim workbookname As String
Dim workbookdirectory As String
Dim correctfilename As Variant
workbookname = ActiveWorkbook.Name
workbookdirectory = "M:\Commercie\Marktdata\IRi\Segment ontwikkeling\"
correctfilename = """M:\Commercie\Marktdata\IRi\Segment ontwikkeling\" & workbookname & """"
workbook_Name = Application.GetSaveAsFilename(fileFilter:="Excel binary sheet (*.xlsb), *.xlsb", initialfilename:=correctfilename)
If workbook_Name <> False Then
ActiveWorkbook.SaveAs Filename:=workbook_Name, FileFormat:=50
End If
End Sub
我认为将工作簿名称作为字符串读取并将正确数量的引号添加到组合的 initialfilename 中就可以了。
当我添加一个显示组合结果的消息框时,我得到了正确的路径和名称:
但是当在 getsaveasfilename 行中使用它时,我继续在正确的目录中显示另存为对话框屏幕,但没有文件名。
如何使目录和文件名的组合与getsaveasfilename 一起使用?还是应该只在activeworkbook.saveas 脚本中使用它?
【问题讨论】:
-
如果包含文件名,
GetSaveAsFilename显然不喜欢双引号:"M:\Commercie\Marktdata\IRi\Segment ontwikkeling\" & workbookname应该可以工作。 -
correctfilename = workbookdirectory & ActiveWorkbook.Name 将是最干净的。
-
是的,但因为它没有按我的意愿工作,所以我改变了它。
标签: excel vba filenames savefiledialog