Msgbox在2月VBA的第一个工作日弹出

时间:2019-07-19 08:10:01

标签: excel vba

我想在每年2月的第一个工作日设置一次提示。我对此不太满意,只能将其硬编码为固定日期,并且当用户打开文件时它将不断弹出

Dim Dte As String
Dim wbmain as Workbook
Dim wsp As Worksheet

Private Sub Workbook_Open()

Set wbmain = ThisWorkbook
Set wsp = wbmain.Worksheets("Path")

Dte = Format(Now(), "dd mmmm")

If Dte = "02 February" Then
    MsgBox "Please Change Paths"
    wsp.Activate
End Sub

我是否希望“请更改路径”在每年2月的第一个工作日才弹出一次?

1 个答案:

答案 0 :(得分:0)

您将在2月的每个第一个工作日收到消息框,而不取决于年份:

Sub tst()

    Dte = Format(Now(), "dd mmmm yyyy")

    If Dte = CDate(Application.WorkDay(DateSerial(Year(Now()), Month("19/02/2019"), 0), 1)) Then

                 MsgBox "Please Change Paths"
    End If

 End Sub

要进行测试,请尝试

Sub tst()

Dte = Format("01/02/2019", "dd mmmm yyyy")

If Dte = CDate(Application.WorkDay(DateSerial(Year(Now()), Month("19/02/2019"), 0), 1)) Then

             MsgBox "Please Change Paths"
    End If

End Sub

这里“现在”将是2019年2月1日,因此该月的第一个工作日,您将收到消息框!

注意:在您的示例中,“ 02/02/2019”是工作日的结束日,而不是工作日