Могу ли я изменить дату на понедельник, если в Excel VBA Macro дата равна субботе или воскресенью - PullRequest
0 голосов
/ 20 июня 2019

Когда я запускаю свой макрос VBA excel, он автоматически копирует лист с именем temp в новый лист в формате «день недели, месяц, день, год», «ddd-MMM-dd-yyyy». Эта новая вкладка будет называться завтраДата.Но когда я запускаю это в пятницу или субботу, в качестве даты будет использоваться суббота или воскресенье.При запуске в воскресенье он будет использовать понедельник, что хорошо.

Я попытался использовать код из этого поста StackOverflow и безуспешно смешать его с моим кодом. Переместить следующую Dateadd в понедельник, если он выпадает на субботу или воскресенье Не совсем уверен, как заставить его работать с моим кодом.

ThisWorkbook.Sheets("temp").Copy After:=Sheets(Sheets.Count)
ThisWorkbook.Sheets(Sheets.Count).Name = Format(Date + 1, "ddd-MMM-dd-yyyy")

Мне нужно, чтобы он всегда использовал понедельник, если выполняется наПятница или суббота.

Ответы [ 2 ]

2 голосов
/ 20 июня 2019
ThisWorkbook.Sheets(Sheets.Count).Name = format(Application.WorksheetFunction.WorkDay(date, 1), "ddd-MMM-dd-yyyy")
0 голосов
/ 20 июня 2019

Вы можете попробовать:

Sub CopySheet()

    Dim strName As String

    If Format(Date, "dddd") = "Saturday" Then
        strName = Format(Date + 2, "ddd-MMM-dd-yyyy")
    ElseIf Format(Date, "dddd") = "Sunday" Then
        strName = Format(Date + 1, "ddd-MMM-dd-yyyy")
    End If

    ThisWorkbook.Sheets(Sheets.Count).name = strName

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