VBA - 日付に従ってフォルダを作成して保存する


0

簡単なように思われることをいくつか実行する必要がありますが、実装方法を理解するのに苦労しています。

今日の日付を使用してフォルダを作成する必要があります。その部分は大丈夫です。それから私はテキストと今日の日付を使ってファイルを保存する必要があります(これもまた罰金です)。

私が得たのは、新しいファイルを新しいフォルダーに保存する必要があるということです。今日の日付でファイルを保存し、今日の日付でファイルを新しいフォルダに保存する方法を教えてください。 (ファイルパスが一定の場合は、これを実行しても構いませんが、パスの一部が日付によって変わる場合は、その方法がわかりません)

これは私が試したものですが、うまくいきません。次のようなエラーが表示されます。1004:アプリケーション定義またはオブジェクト定義のエラーです。

Sub filesave()

ActiveWorkbook.SaveAs ("S:\HR\TM\" & Format(Now(),"dd.mm.yyyy") & "\SOX recon " & Format(Now(), "dd.mm.yyyy") & ".xlsx")

End Sub

これはフォルダを作成するためのコードです(これは完璧に動作します):

Sub FolderCreate()

MkDir "S:\HR\TM\" & Format(Now(), "dd.mm.yyyy")

End Sub

セキュリティのためにファイルパス/ディレクトリは若干変更/簡略化されています。


フォルダはどこに作成しますか。少なくとも生成した文字列を表示してコードをデバッグしようとしましたか?
harrymc

@harrymc - フォルダはすでに作成済みです。そのコードは完全に動作します(それはそのdd.mm.yyyyフォーマットで現在の日付で "TM"フォルダーに新しいフォルダーを作成します)。私の問題は、これが実行されるたびにフォルダ名が異なることです。ただし、それは常に現在の日付にちなんで名付けられます。
Lenny

何と違うの?他のコードを見せてもらえますか?なぜあなたは二度名前を再計算する必要があるのですか?
harrymc

@harrymc毎週フォルダが作成されます。日付フォルダであるため、名前は毎回異なります(今日の名前は29.11.2018、来週の名前は06.12.2018、という名前になります)そのため、ファイルが保存されるフォルダは毎週異なり、処理が完了するまで決定されません。フォルダ作成コードを追加します。
Lenny

回答:


0

ただ推測:

fname = "S:\HR\TM\" & Format(Now(),"dd.mm.yyyy") & "\SOX recon " & Format(Now(), "dd.mm.yyyy") & ".xlsx"
MsgBox fname
ActiveWorkbook.SaveAs Filename:=fname, FileFormat:=xlOpenXMLWorkbook
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.