Индекс вне диапазона, используемый в цикле For - PullRequest
0 голосов
/ 23 апреля 2020

Выполнение следующего кода в VBA для вызова ячеек Excel в массиве и использования его в FOR l oop для расчета, но с ошибкой «Subscript out of Range»

Sub nestedLoopFor()
  Dim i As Integer
  Dim j As Integer
  Dim Qty As Variant


    Dim Cap As Variant
      Qty = Range("C2:L2").Value 'call cells from 3rd row
      Cap = Range("B3:B7").Value 'call cells from 2nd column

      For i = 1 To 5
          For j = 1 To 10
          Cells(i + 2, j + 2).Value = WorksheetFunction.Min(Qty(j), Cap(i))
          Qty(j) = Qty(j) - Cells(i + 2, j + 2).Value
          Cap(i) = Cap(i) - Cells(i + 2, j + 2).Value
          Next
      Next

    End Sub

1 Ответ

0 голосов
/ 23 апреля 2020

FYI Qty и Cap - это двумерные массивы, поэтому вам нужно предоставить оба индекса, если вы хотите получить доступ к элементу в одном из них.

Cap(i, 1)
Qty(1, j)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...