Excel Macro VBA Сохранить под текущим именем файла с указанием даты - PullRequest
0 голосов
/ 29 августа 2018

Мой вопрос похож на многие уже заданные, но все решения не сработали для меня.

У меня есть несколько файлов Excel, которые я хочу сохранить под их текущим именем с прикрепленной сегодняшней датой, но в другой папке. Поскольку все эти файлы имеют разные имена, мой подход заключается в том, чтобы получить имя файла в качестве переменной и использовать его для сохранения имени. Поскольку я хочу избежать написания макроса для каждого файла, идея поместить желаемое имя в одну ячейку, а затем использовать это значение (которое работает) для его сохранения, не подходит.

Sub Save_Workbook()


' Save Sheet with Current Date
' Adjust Absolute Path to Location Where to Save the Workbook

Dim FName As String

FName = ActiveWorkbook.Name


ActiveWorkbook.SaveAs ("C:\Users\ME\FOLDER1\FOLDER2\SHEETS1\SHEETS2\ FName " & Format(Now(), "DD-MM-YYYY" & ".xlsx"))
End Sub

Этот макрос сохраняет файл в нужной папке и с прикрепленной датой, но не принимает переменную, определенную пользователем FName . Полученное имя файла, например, FName 29-09-2018 .

Я догадываюсь, что способ определения переменной или ее добавления в инструкцию по сохранению неверен.

Я рад советам, как это исправить.

1 Ответ

0 голосов
/ 29 августа 2018

Вы включили FName в строку, поэтому она обрабатывается как просто текст.

ActiveWorkbook.SaveAs ("C:\Users\ME\FOLDER1\FOLDER2\SHEETS1\SHEETS2\ FName " & Format(Now(), "DD-MM-YYYY" & ".xlsx"))  

должно быть

ActiveWorkbook.SaveAs ("C:\Users\ME\FOLDER1\FOLDER2\SHEETS1\SHEETS2\" & FName & Format(Now(), "DD-MM-YYYY" & ".xlsx"))  

или вы можете полностью удалить FName и использовать ActiveWorkbook.Name:

ActiveWorkbook.SaveAs ("C:\Users\ME\FOLDER1\FOLDER2\SHEETS1\SHEETS2\" & ActiveWorkbook.Name & Format(Now(), "DD-MM-YYYY" & ".xlsx"))

Вы можете добавить пробел между FName и датой. Вместо того, чтобы добавить дополнительный & " " & рядом с Fname, вы можете использовать:

Format(Now(), " DD-MM-YYYY" & ".xlsx")  

Это добавляет дополнительный пробел в форматировании даты.

...