[英]Dates in dd/mm/yyyy format return 1004 Error in Excel Vba
我有這個代碼,它有效:
Sub try3()
Dim dates(1 To 2) As Date
Dim values(1 To 2) As Double
Dim TIR As Double
dates(1) = #1/1/2015#
dates(2) = #1/1/2016#
values(1) = -1000
values(2) = 1101
TIR = Application.WorksheetFunction.xirr(values, dates)
End Sub
但是,如果我更改日期,例如,
dates(1) = #1/15/2015#
dates(2) = #1/15/2016#
,然后我收到錯誤 1004:
“無法獲得類 WorksheetFuntion 的屬性 Xirr”。
我的計算機日期格式是歐洲 (dd/mm/yyyy)。 如果我將其更改為美國 (mm/dd/yyyy),那么我的代碼就可以工作了。
我想在我的系統中保留歐洲格式,並且我希望我的代碼可以在任何計算機上運行,而不管他們系統的日期格式
我試圖按如下方式定義日期,但我遇到了同樣的錯誤。
dates(1) = DateSerial(2015, 1, 15)
dates(2) = DateSerial(2016, 1, 15)
知道如何讓 VBA 理解日期,同時在我的計算機中保留歐洲格式嗎?
謝謝
問題不在於XIRR()
,它正在盡其所能:
Sub TestMe()
Dim TIR As Double
TIR = Application.WorksheetFunction.Xirr(Array(-1000, 1101), Array(42019, 42384))
Debug.Print TIR
End Sub
只需嘗試使用CLng
轉換為Long
,無論您使用哪個日期,它都應該在 Excel 中返回42019
和42384
,如果您沒有使用Date1904
“功能”。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.