Я хочу определить пустой массив, чтобы я мог определять значения для него далее в коде, но я продолжаю получать 'индекс вне диапазона', ошибка времени выполнения '9' в этой строке:
ReDim VectorToSum(0 To q-1)
Я не уверен, почему. Это полный код:
Option Explicit
Public Sub DefferedRev()
Dim NoMonths As Range
Set NoMonths = ThisWorkbook.Worksheets("Sheet4").Range("C13")
Dim ws As Worksheet
Set ws = ThisWorkbook.Worksheets("Sheet13")
If ws.Range("B40").Value = ws.Range("C82").Value Then
ws.Range(ws.Cells(48, 5), ws.Cells(48, 7)).Value = 0
Else
Dim i As Long
For i = 5 To 7
Dim q As Long
q = (i Mod NoMonths) - 5
Dim VectorToSum() As String
ReDim VectorToSum(0 To q-1)
Dim w As Long
For w = 0 To q-1
VectorToSum(w) = (ws.Cells(38, i).Value * ws.Cells(7, i).Value) / (NoMonths * NoMonths - w)
Next w
ws.Cells(48, i).Value = Application.WorksheetFunction.Sum(VectorToSum)
Next i
End If
End Sub
Я пробовал это:
q = (i Mod NoMonths) - 5
Dim VectorToSum() As Long
Dim w As Long
For w = 0 To q
ReDim VectorToSum(w)
VectorToSum(w) = (ws.Cells(38, i).Value * ws.Cells(7, i).Value) / (NoMonths * NoMonths - w)
Next w
ws.Cells(48, i).Value = Application.WorksheetFunction.Sum(VectorToSum)
Next i
, но я просто получаю ошибку времени выполнения 5 в следующей строке:
ws.Cells(48, i).Value = Application.WorksheetFunction.Sum(VectorToSum)