Excel vba-自定义workday函数引发错误

Excel vba-自定义workday函数引发错误,excel,vba,excel-formula,Excel,Vba,Excel Formula,我无法修复VBA函数中的类型不匹配错误,有人可以帮助我吗 sub test() MsgBox NSEBDay(Date) Endsub Function NSEBDay(InPut_Date As Date) As Boolean Dim MyDate As Date Dim Hday As Range Set Hday = wksBackup.Range("TSys_NSEHoliday") MyDate = Application.Evaluate("=workday(InPut_Dat

我无法修复VBA函数中的类型不匹配错误,有人可以帮助我吗

sub test()
MsgBox NSEBDay(Date)
Endsub

Function NSEBDay(InPut_Date As Date) As Boolean
Dim MyDate As Date
Dim Hday As Range
Set Hday = wksBackup.Range("TSys_NSEHoliday")

MyDate = Application.Evaluate("=workday(InPut_Date+1,-1," & Hday.Address(0, 0) & ")")

If InPut_Date = MyDate Then
    NSEBDay = MyDate
End If
End Function

请将第一个函数中的Endsub更改为Endsub。我猜那只是个打字错误

在函数2中的表达式上,请进行以下更改:

MyDate = Application.Evaluate("=workday(""" & DateAdd("d", InPut_Date, 1) & """,-1," & Hday.Address(0, 0) & ")")

这样,输入日期被识别为变量,而不是字符串的一部分。DateAdd函数向该值添加一天。

请在第一个函数中将Endsub更改为Endsub。我猜那只是个打字错误

在函数2中的表达式上,请进行以下更改:

MyDate = Application.Evaluate("=workday(""" & DateAdd("d", InPut_Date, 1) & """,-1," & Hday.Address(0, 0) & ")")

这样,输入日期被识别为变量,而不是字符串的一部分。DateAdd函数为该值添加一天。

这更直接一些。经过测试,在我这边工作得很好

MyDate = Application.WorksheetFunction.WorkDay(InPut_Date + 1, -1, Hday)

这有点直截了当。经过测试,在我这边工作得很好

MyDate = Application.WorksheetFunction.WorkDay(InPut_Date + 1, -1, Hday)