如果日期等于Excel VBA宏中的星期六或星期日,我可以将日期更改为星期一

时间:2019-06-20 13:27:39

标签: excel vba

当我运行excel VBA宏时,它会自动将名为temp的工作表复制到新的工作表中,该工作表的格式为“星期几,月,日,年”,“ ddd-MMM-dd-yyyy” 它将使用明天的日期来命名此新标签页。 但是,当我在周五或周六运行此程序时,它将使用周六或周日作为日期。 在星期天运行时,它将使用星期一,这很好。

我尝试使用此StackOverflow帖子中的代码,并将其混入我的代码中,但没有任何运气。 Move next Dateadd to Monday if it falls on Saturday or Sunday 不确定如何使其与我的代码一起使用。

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

如果在星期五或星期六运行,我需要它始终使用星期一。

2 个答案:

答案 0 :(得分:2)

ThisWorkbook.Sheets(Sheets.Count).Name = format(Application.WorksheetFunction.WorkDay(date, 1), "ddd-MMM-dd-yyyy")

答案 1 :(得分:0)

您可以尝试:

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