当我运行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")
如果在星期五或星期六运行,我需要它始终使用星期一。
答案 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