簡體   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