VBA Runtime error 13 - несоответствие типов - расчет временных рядов цены не работает с массивом

Я подозреваю, что мой вопрос имеет очень простой ответ, и все же я не могу найти ответ, который я понимаю при поиске по всему сайту.

  • Ticker1 = массив цен на акции (от 1 до 2542)
  • PctChg1 = массив, который, я надеюсь, в конечном итоге будет содержать результаты(Price_last / Price_prev) - 1
  • i = счетчик

Код:

For i = 2 To UBound(Ticker1)
    PctChg1(i, 1) = Ticker1(i, 1) / Ticker1(i - 1, 1) - 1
Next i

Что-то о Ticker1(i - 1, 1) Отчасти это не нравится - я тоже дурачился с диапазонами и не могу понять этого. Я не знаю, почему он думает, что я делю на число, которого там нет - если я начинаю с точки 2 массива, почему я не смогу ссылаться на 1?

1 ответ

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

Это работает, но я до сих пор не установил, почему i-1 выдает ошибки, когда я запускаю расчет по точке данных i=2,

Другие вопросы по тегам