dd/mm/yyyy 格式的日期 return 1004 Excel 中的错误 Vba
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:
"Property Xirr of class WorksheetFuntion could not be obtained".
我的计算机日期格式是欧洲格式 (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
,无论您使用的是哪个日期,它都应该 return 42019
和 42384
在 Excel, 如果你没有使用 Date1904
"feature".
我有这段代码,它有效:
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:
"Property Xirr of class WorksheetFuntion could not be obtained".
我的计算机日期格式是欧洲格式 (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
,无论您使用的是哪个日期,它都应该 return 42019
和 42384
在 Excel, 如果你没有使用 Date1904
"feature".