我正在尝试创建一组要在 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)