首页 > 解决方案 > Rccognise 最后一个工作日并更改单元格值的子字符串

问题描述

我正在尝试将单元格值中的 2 个日期 ('10-06-19'!F333+'10-06-19'!Y555) 更改为最后一个工作日。

我在 Excel 中有一个可以维护的公共假期列表。

我有识别周末+假期的代码。有人可以帮助使用 Wrkdate 值更改单元格值的(日期部分)子字符串的代码。

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

标签: excelvbaexcel-2013

解决方案


最后一个工作日

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

推荐阅读