Excel VBA-自定义工作日功能引发错误

时间:2018-08-05 18:09:56

标签: excel 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_Date+1,-1," & Hday.Address(0, 0) & ")")

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

2 个答案:

答案 0 :(得分:4)

这更加简单。经过测试,在我的终端上工作正常。

move_to

答案 1 :(得分:0)

请在第一个功能中将Endsub更改为End Sub。我猜那只是一个错字。

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

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

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