【发布时间】:2019-03-30 10:18:06
【问题描述】:
我有这段代码,它可以工作:
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 理解日期,同时在我的计算机中保留欧洲格式吗?
谢谢
【问题讨论】:
-
奇怪...您提供的代码对我有用 (Excel 2016, v.16.0.1.., 64-bit) 。以下三个不同的版本对我有用:1.
dates(1) = #1/15/2015#2.dates(1) = DateSerial(2015, 1, 15)3.dates(1) = CDate("2015-01-15")