сохранить Excel с датой в имени - PullRequest
0 голосов
/ 24 мая 2018

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

Sub Save()

    Sheets("Tool").Unprotect Password:="xxxx"


    Dim fclient As String
    Dim path As String


    fclient = Range("G11").Value
    path = Application.ActiveWorkbook.path


    fname = "Discount for " & fclient

    Application.ActiveWorkbook.SaveAs Filename:=path & "\" & fname & Format(Now, "DD-MM-YYYY"), FileFormat:=52, CreateBackup:=False

    Sheets("Tool").Protect Password:="xxxx"


End Sub

Ответы [ 2 ]

0 голосов
/ 24 мая 2018

Попробуйте использовать ThisWorkbook вместо Activeworkbook

0 голосов
/ 24 мая 2018

Вместо того, чтобы вводить 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 может содержать дату.

Почему ваш оригинальный код не работает, я не уверен, но это альтернатива.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...