-1

我编写了一个子例程,并在该子例程中使用以下代码而没有任何错误。

只有相关代码:

Dim CandleEndTimes() as Date

NoOfCndlInDay = 5

ReDim Preserve CandleEndTimes(NoOfCndlInDay)

CandleEndTimes = Array(#10:30:00 AM#, #12:00:00 PM#, #1:30:00 PM#, #3:00:00 PM#, #3:30:00 PM#)

然后为了让这个子例程处理不止一种情况,我删除了为数组赋值的语句并将其CandleEndTimes定义为参数,如下所示

Sub CustomCandles(UseOnBookName As String, UseOnSheetName As String, NoOfCndlInDay As Integer, CandleEndTimes() As Date)

用于调用上述子程序的子程序代码:

Sub callingcust()

Dim Min90CandleEndTimes() As Date

ReDim Preserve Min90CandleEndTimes(5)

Min90CandleEndTimes = Array(#10:30:00 AM#, #12:00:00 PM#, #1:30:00 PM#, #3:00:00 PM#, #3:30:00 PM#)


End Sub

在用于分配值的语句中调试代码时,出现错误 13

任何人都可以看到上面的代码有什么问题。如果您觉得信息不足,请告诉我我还需要分享什么。

请帮忙!

4

1 回答 1

0

Array 函数返回Variant类型,这就是您收到类型不匹配错误的原因 - 如果目标数组是动态的并且与源数组的类型相同,您只能在一次操作中将一个数组分配给另一个数组。你需要 5 个离散任务

Dim Min90CandleEndTimes() As Date

ReDim Preserve Min90CandleEndTimes(5)

Min90CandleEndTimes(1) = #10:30:00 AM#
Min90CandleEndTimes(2) = #12:00:00 PM#
Min90CandleEndTimes(3) = #1:30:00 PM#
Min90CandleEndTimes(4) = #3:00:00 PM#
Min90CandleEndTimes(5) = #3:30:00 PM#

顺便说一句,除非您设置了 Option Base 1,否则您的数组有 6 个元素;-)

于 2013-08-14T11:57:45.493 回答