0

我正在尝试创建一组要在 Workday 函数中使用的假期。当我运行代码并进入工作日功能时,我得到一个

“运行时错误‘1004’:无法获取 WorksheetFunction 类的 WorkDay 属性”

你能帮我解决一下吗?我希望代码自动添加我添加到列表中的任何新假期。

主控代码

Public reqDate As Date
Public reqDateString As String
Public reqPurp As String
Public slaveFound As String
Public masterFound As String
Public lastrowSlave As String
Public lastrowMaster As String
Sub MainUpdate()

    Dim holidays As Variant
    Dim slaveDir As String
    Dim masterDir As String

    holidays = FindHolidays
    slaveDir = FindSlaveDir
    masterDir = FindMasterDir

    OpenWorkDir slaveDir, masterDir

    Select Case reqPurp
        Case Is = "CSL"
            PrepareSlaveCSL slaveDir, holidays
            CopySlaveMasterCSL slaveDir, masterDir
        Case Is = "OB"
            PrepareSlaveOB slaveDir, holidays
            CopySlaveMasterOB slaveDir, masterDir
    End Select

End Sub

创建数组的代码:

Function FindHolidays() As Variant

    Dim dirHoli As String
    Dim lastrowHoli As Integer
    Dim arrayHoli As Variant
    Dim wbHoli As String

    dirHoli = "\\dklesv701.nilemah.com\common\Diverse\CustomerSatisfactionTeam\JUMP_R2P\8. Repporting\6. CSL2\Helligdage.xlsx"
    wbHoli = "Helligdage.xlsx"

    Workbooks.Open Filename:=dirHoli, UpdateLinks:=False
        Workbooks(wbHoli).Activate

    lastrowHoli = Workbooks(wbHoli).Sheets("Ark1").Range("A1").CurrentRegion.Rows.Count

    Workbooks(wbHoli).Sheets("Ark1").Range("B1").Formula = "=Year(Today())"

    ReDim arrayHoli(1 To lastrowHoli) As Variant
        For i = 1 To lastrowHoli
            If IsDate(Workbooks(wbHoli).Sheets("Ark1").Cells(i, 2)) Then
                arrayHoli(i) = Workbooks(wbHoli).Sheets("Ark1").Cells(i, 2).Value
            End If
        Next i

    FindHolidays = arrayHoli

    Workbooks(wbHoli).Close SaveChanges:=True

End Function

我使用工作日功能的代码:

Sub PrepareSlaveCSL(slaveDir As String, holidays As Variant)

    Dim MB5B As String
    Dim MB5Bdate As Date

    MsgBox Join(holidays)

    MB5Bdate = WorksheetFunction.WorkDay(reqDate, -3, holidays)
4

0 回答 0