簡體   English   中英

dd/mm/yyyy 格式的日期在 Excel Vba 中返回 1004 錯誤

[英]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 中返​​回4201942384 ,如果您沒有使用Date1904 “功能”。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM