2012-06-21 3 views
1

Есть ли способ сделать макрос для сохранения файла с текущим днем ​​в имени. Я хочу сохранить это каждый день с правильной датой.Макро с сохранением Текущая дата

Это то, что я как макрос, довольно простой, но у меня возникли проблемы с получением текущей формулы даты в имени файла (если это возможно)

Sub Save() 
    ActiveWorkbook.SaveAs Filename:="X:\file06-21-2012\.xlsm", FileFormat _ 
    :=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False 
End Sub 

Так что завтра я хотел бы Марко в сохраните его как файл06-22-2012.

Thanks

ответ

6

Нравится?

Sub Save() 
    Dim FilePath As String 
    Dim NewName As String 

    FilePath = "X:\": NewName = FilePath & "file" & Format(Date, "MM-DD-YYYY") & ".xlsm" 

    ActiveWorkbook.SaveAs Filename:=NewName, FileFormat _ 
    :=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False 
End Sub 
+1

+1 мы думаем так на этом! Я думаю, что все были отправлены в одно и то же время! –

+0

Я получаю ошибку компиляции Неверное количество аргументов или недопустимое присвоение свойств, а формат выделен? –

+1

@AdamG .: Вы скопировали код точно так, как он указан выше? –

3

С уважением к отвечу @ HeadofCatering, я думаю, более простой и понятный подход будет таким.

Sub Save() 

Dim dtDate As Date 
dtDate = Date 

Dim strFile As String 
strFile = "X:\file" & Format(dtDate, "mm-dd-yyyy") & ".xlsm" 

ActiveWorkbook.SaveAs Filename:=strFile, FileFormat _ 
    :=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False 

End Sub 
+2

+ 1 для получения его в одно и то же время;) BTW, вы можете удалить дополнительные переменные, такие как dtDate, и сделать код короче :) –

+1

хорошая точка. Это немного привычка, потому что, когда я хочу иметь возможность менять переменную один раз ... но, конечно, это не относится к этому маленькому блоку. –