Arrays VBA运行时错误13-类型不匹配-价格时间序列计算在阵列上不起作用

Arrays VBA运行时错误13-类型不匹配-价格时间序列计算在阵列上不起作用,arrays,vba,time-series,Arrays,Vba,Time Series,我怀疑我的问题有一个非常简单的答案,但我找不到一个答案,我在整个网站搜索了解 Ticker1=股票价格1到2542的数组 PctChg1=一个数组,我希望它最终能保存 上次价格/上次价格-1 i=计数器 代码: 关于Ticker1i-1的一些东西,它不喜欢的部分-我也玩弄了范围,无法理解这一点。我不知道为什么它认为我在除以一个不存在的数字——如果我从数组的点2开始,为什么我不能引用点1 这是可行的,但我仍然没有确定为什么我在数据点I=2开始计算时I-1会产生错误。为什么I=2不是I=LBound

我怀疑我的问题有一个非常简单的答案,但我找不到一个答案,我在整个网站搜索了解

Ticker1=股票价格1到2542的数组 PctChg1=一个数组,我希望它最终能保存 上次价格/上次价格-1 i=计数器 代码:

关于Ticker1i-1的一些东西,它不喜欢的部分-我也玩弄了范围,无法理解这一点。我不知道为什么它认为我在除以一个不存在的数字——如果我从数组的点2开始,为什么我不能引用点1


这是可行的,但我仍然没有确定为什么我在数据点I=2开始计算时I-1会产生错误。

为什么I=2不是I=LBoundTicker1?您确定两个数组的大小/亮度相同吗?我使用I=2而不是LboundTicker1,因为我需要至少2天的时间来计算百分比变化。I-1的值是否为0?如果是,则会导致错误。由于在进行计算之前,您在上面所做的修改专门检查i-1 0是否解决了问题,这使我相信在某些情况下,数组的第一个值是0,它会抛出错误。同意,只是不知道为什么。票面上有一个价格,1。
For i = 2 To UBound(Ticker1)
    PctChg1(i, 1) = Ticker1(i, 1) / Ticker1(i - 1, 1) - 1
Next i
For i = 2 To UBound(Ticker1)
    If Val(Ticker1(i - 1, 1)) <> 0 Then PctChg1(i, 1) = Ticker1(i, 1) / Ticker1(i - 1, 1) - 1
Next i