繁体   English   中英

Excel VBA:NetworkDays错误2015

[英]Excel VBA: NetworkDays Error 2015

我在VBA类中有这段代码,它可以锻炼类的属性(日期)和今天的日期之间的天数。

Dim EmailDate As Date
EmailDate = Me.Email.DateReceived

Debug.Print EmailDate, Date
Debug.Print NetworkDays(EmailDate), Date, Range("BankHolidays"))

当我运行它时,我得到以下输出

23/04/2010    19/05/2010 
[GetMacroRegId] 'NETWORKDAYS' <
[GetMacroRegId] 'NETWORKDAYS' -> '699990072' >
Error 2015

我已经在模块中使用伪数据对其进行了测试,并获得了正确的答案。 谁能看到为什么这会给课堂带来错误?

我已经引用了atpvbaen.xls。

编辑:我发现,当我通过菜单栏上创建的菜单选项运行代码时,它会失败,但是当我通过按钮或通过VB编辑器运行代码时,它可以正常工作。 看起来这与菜单有关。

谢谢马丁

您确定将代码正确粘贴到您的问题中吗? NetworkDays接受3个参数,而不是1个,因此:

Debug.Print NetworkDays(EmailDate), Date, Range("BankHolidays")) 

应该:

Debug.Print NetworkDays(EmailDate, Date, Range("BankHolidays")) 

从Menu运行时,您正在应用程序级别上下文中运行。 因此,如果未定义范围或未在多个打开的工作簿中定义范围,则不能正确解析Range(“ BankHolidays”)。 尝试使用

activeworkbook.activesheet.Range("BankHolidays")

那应该解决名字。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM