【发布时间】:2017-07-05 19:59:26
【问题描述】:
我正在尝试创建一个宏,让用户将工作簿的备份保存到特定位置。我在下面尝试了我的代码,但收到了错误 13 消息。我不需要将它保存为启用宏的工作簿,但我认为这样会更容易。
Sub openSaveDialog()
'
' gives error 13 message when clicking save
'
Dim saveSuccess As Boolean
Dim fNameRec As String
Dim dateNow As String
Dim saveToDir As String
saveToDir = "Z:\location of save\Old Archive spreadsheets\"
dateNow = Format(Now(), "mmddyyyy")
fNameRec = saveToDir & "BinderArchiveBackup_" & dateNow
Sheets(3).Range("E25") = fNameRec
'check if backed up today
If (Sheets(3).Range("E22") = Date) Then
MsgBox "backup already saved today no need to save again"
Exit Sub
End If
'open save as window
saveSuccess = Application.GetSaveAsFilename(InitialFileName:=fNameRec, FileFilter:= _
"Excel Files (*.xlsx)," & "*.xlsx, Macro Enabled" & _
"Workbook (*.xlsm), *xlsm")
'if backup saved, update date of last backup
If saveSuccess Then
Sheets(3).Range "E22" = Date
MsgBox "save successful"
End If
'if backup not saved, inform user
If Not saveSuccess Then
MsgBox "save canceled, please save backup before adding new items to the archive today"
End If
End Sub
我尝试调整的东西
- 仅启用宏的文件过滤器
- 文件过滤器仅用于 Excel 工作簿
- 空白文件过滤器保存为所有文件类型
- 名称末尾带有 .xlsx 的空白文件过滤器
- 初始文件名没有目录,但带有 ChDir,因此无论如何它都会在正确的保存位置打开
任何帮助都会很棒。
另存为打开的窗口
【问题讨论】: