识别最后一个工作日并更改单元格值的子字符串

时间:2019-06-18 03:28:52

标签: excel vba excel-2013

我正尝试将两个值('10 -06-19'!F333 + '10 -06-19'!Y555)更改为最后一个工作日。

我在Excel中有一份可以维护的假日列表。

我有识别周末和节假日的代码。有人可以帮助代码来更改Wrkdate值的单元格值的(datepart)子字符串。

Sub ChangeSubstringOfDate() 
    Dim WrkDate
    WrkDate = Date

    If (Application.Weekday(Date - 1, 2) = 7) Then      '  for  Sunday
        WrkDate = WrkDate - 2
    Else
        If (Application.Weekday(Date - 1, 2) = 6) Then  '  for  Saturday
            WrkDate = WrkDate - 1      
        Else
            'check for  for  holidays
            WrkDate = Application.WorksheetFunction.WorkDay(Date, -1, Worksheets("Sheet3").Range("A:A"))
        End If
    End If

    Range("C7").Value = Format(WrkDate - 1, "dd mm yy")  
    '10-06-19'!F333+'10-06-19'!Y555-- change date to i.e. 06-06-19.    
End Sub

1 个答案:

答案 0 :(得分:0)

最后工作日

Sub Test()
    MsgBox CDate(Evaluate("WORKDAY(TODAY(),-1)"))
End Sub