启用宏的工作簿保存到错误的文件夹
Macro-enabled workbook saved to wrong folder
当我使用下面的代码来:
- 保存启用宏的工作簿
- 与打开的工作簿在同一个文件夹中
它确实以错误的名称将文件保存在桌面上:
Sub Save_New_MacroEnabledFile()
Dim thisWb As Workbook
Set thisWb = ActiveWorkbook
Worksheets("Sheet_with_VBA_Button").Activate
ActiveWorkbook.SaveAs Filename:=thisWb.Path & Sheets("Sheet_with_NewFile's_Name").Range("A2"), FileFormat:= _
xlOpenXMLWorkbookMacroEnabled, Password:=vbNullString, WriteResPassword:=vbNullString, _
ReadOnlyRecommended:=False, CreateBackup:=False
End Sub
我做错了什么?
您在创建新文件路径时没有添加斜杠。
可能你有这个文件的文件夹在桌面上,没有斜线它只是将文件的名称附加到文件夹的名称,即。
文件夹是:
C:\Users\Antoine\Desktop\Folder
在附加不带斜杠的文件名后,它就像:
C:\Users\Antoine\Desktop\Folderfilename.xlsx
试试这个代码:
Sub Save_New_MacroEnabledFile()
Dim thisWb As Workbook
Dim fileName As String
Set thisWb = ActiveWorkbook
Worksheets("Sheet_with_VBA_Button").Activate
Application.DisplayAlerts = False
fileName = thisWb.Path & "\" & Sheets("Sheet_with_NewFile's_Name").Range("A2") & VBA.IIf(Right(fileName, 5) = ".xlsm", "", ".xlsm")
ActiveWorkbook.SaveAs fileName:=fileName, _
FileFormat:=xlOpenXMLWorkbookMacroEnabled, Password:=vbNullString, WriteResPassword:=vbNullString, _
ReadOnlyRecommended:=False, CreateBackup:=False
Application.DisplayAlerts = True
End Sub
当我使用下面的代码来:
- 保存启用宏的工作簿
- 与打开的工作簿在同一个文件夹中
它确实以错误的名称将文件保存在桌面上:
Sub Save_New_MacroEnabledFile()
Dim thisWb As Workbook
Set thisWb = ActiveWorkbook
Worksheets("Sheet_with_VBA_Button").Activate
ActiveWorkbook.SaveAs Filename:=thisWb.Path & Sheets("Sheet_with_NewFile's_Name").Range("A2"), FileFormat:= _
xlOpenXMLWorkbookMacroEnabled, Password:=vbNullString, WriteResPassword:=vbNullString, _
ReadOnlyRecommended:=False, CreateBackup:=False
End Sub
我做错了什么?
您在创建新文件路径时没有添加斜杠。
可能你有这个文件的文件夹在桌面上,没有斜线它只是将文件的名称附加到文件夹的名称,即。 文件夹是:
C:\Users\Antoine\Desktop\Folder
在附加不带斜杠的文件名后,它就像:
C:\Users\Antoine\Desktop\Folderfilename.xlsx
试试这个代码:
Sub Save_New_MacroEnabledFile()
Dim thisWb As Workbook
Dim fileName As String
Set thisWb = ActiveWorkbook
Worksheets("Sheet_with_VBA_Button").Activate
Application.DisplayAlerts = False
fileName = thisWb.Path & "\" & Sheets("Sheet_with_NewFile's_Name").Range("A2") & VBA.IIf(Right(fileName, 5) = ".xlsm", "", ".xlsm")
ActiveWorkbook.SaveAs fileName:=fileName, _
FileFormat:=xlOpenXMLWorkbookMacroEnabled, Password:=vbNullString, WriteResPassword:=vbNullString, _
ReadOnlyRecommended:=False, CreateBackup:=False
Application.DisplayAlerts = True
End Sub