Вместо того, чтобы вводить Format(Now(DD-MM-YYYY))
непосредственно в свой путь, вы можете установить дату в ячейку на листе, а затем использовать значение ячеек как часть имени файла так же, как вы указали для имени клиента.
Функция Date
использует вашу текущую системную дату в формате DD/MM/YYYY
вместо DD/MM/YYYY HH:MM:SS
, который используется Now
.
Я адаптировал эток вашему коду вместе с кодом «найти и заменить», чтобы найти «/» в дате и заменить его на «_».( ПРИМЕЧАНИЕ это было просто записано и могло быть написано лучше, я уверен.) Вы можете изменить подчеркивание на любой другой действительный символ для имени файла, если хотите.
В моем тестеЯ удалил Path
как , если вы пропустите путь в имени файла, он будет использовать текущий путь к файлу.
Sub Save()
Dim fclient As String
Dim tdate As String
Range("G12") = Date
tdate = Range("G12")
fclient = Range("G11")
Cells(12, 7).Replace What:="/", Replacement:="_", LookAt:=xlPart, SearchOrder _
:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
tdate = Range("G12")
fname = "Discount for " & fclient
ThisWorkbook.SaveAs Filename:="\" & fname & "_" & tdate _
, FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
End Sub
Я предположил, что ячейка G12 может содержать дату.
Почему ваш оригинальный код не работает, я не уверен, но это альтернатива.