0
ユーザーがブックのバックアップを特定の場所に保存するようにマクロを作成しようとしています。私は以下のコードを試しましたが、エラー13のメッセージがあります。マクロ対応のブックとして保存する必要はありませんが、もっと簡単にできると思いました。VBA excel Application.getsaveasfilename error 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
私はちょうどマクロに
- ファイルフィルタを微調整しようとした事は、ちょうどすべてのファイル
- と空のファイルフィルタを型として保存ワークブック
- ブランクファイルフィルタを得意とする
- ファイルフィルタを有効に.xlsxという名前の末尾に
- ディレクトリがない初期のファイル名ですが、ChDirがあるので、右のsavで開きますどこにでも位置しています
助けがあれば助かります。
ありがとう:コードのあなたの最後のビットは、おそらくのようなものでなければなりません。私は問題がdateNow文字列の書式設定であることを発見しました。 MsgBox(dateNow)を入れた後に、文字列にスラッシュ(月/日/年)を区切った数字がリストされていることが示されました。ファイル名に渡されたときに、save as関数は存在しなかったフォルダを検索しました。 dateNow =月(日付)と日(日付)&年(日付) と交換しました。現在は – NoNels
@NoNels本当に奇妙に聞こえます。私はファイル名に無効な文字があると思っていたので、何が起こるかをテストしたところ、ダイアログを表示する前に名前が空白になっていました。(そして、エラーを出さないにもかかわらず、私はあなたの 'dateNow'変数をチェックし、**スラッシュを入れていないことを保証しました - あなたは' 'mmddyyyy''フォーマットを使用していますそれはそうしないでしょう) – YowE3K
あなたはそうです。私はあなたの修正を採用した後、それが昨日それを弄っていた間に、 'mmddyyyy'から引用符を削除してしまったに違いありません。私の悪い。私が掲示したコードを使って試してみると、あなたが説明したように動作します。私はまだコーディングにかなり新しいです、そして、これは私の最初の投稿でした、私はそれが私のせいだと推測しています。重要なことは、コードが今働くことです。 :) – NoNels