Ошибка Run-time error 9: subscript out of range. В чем причина? - VBA

Узнай цену своей работы

Формулировка задачи:

В VBA не очень шарю, но пришлось написать программу для выставления цен. Появляется ошибка, не могу понять, что не так. Задача: написать программу, которая берет число из ячейки F1, если оно больше значения из ячейки A1 и меньше B1, то в ячейку G1 записывается сумма F1+D1, если нет, то сравнивает F1 с A2 и B2. Ну и цикл дальше, в столбце F много срок, которые нужно сравнить. К F1 должно прибавляться значение из ячейки столбца D, которое соответствует строке интервала, в который F1 попадает. Ошибку выдает в строке с IF. Помогите разобраться, пожалуйста.
Листинг программы
  1. Private Sub CommandButton1_Click()
  2. Dim x As Integer
  3. Dim i As Integer
  4. Dim k As Integer
  5. i = 1
  6. k = 1
  7. For x = 1 To 200
  8. If ThisWorkbook.Worksheets("Sheet1").Cells(F, i) > ThisWorkbook.Worksheets("Sheet1").Cells(A, k) And ThisWorkbook.Worksheets("Sheet1").Cells(F, i) < ThisWorkbook.Worksheets("Sheet1").Cells(B, k) Then
  9. ThisWorkbook.Worksheets("Sheet1").Cells(G, i) = ThisWorkbook.Worksheets("Sheet1").Cells(F, i) + ThisWorkbook.Worksheets("Sheet1").Cells(D, k)
  10. i = i + 1
  11. Else
  12. k = k + 1
  13. End If
  14. Next
  15. End Sub

Решение задачи: «Ошибка Run-time error 9: subscript out of range. В чем причина?»

textual
Листинг программы
  1. Private Sub CommandButton1_Click()
  2.    Dim i As Integer, j As Integer
  3.    With ThisWorkbook.Worksheets("Sheet1")
  4.     For i = 1 To 200
  5.        For j = 1 To 200
  6.            If .Range("F" & i) > .Range("A" & j) And _
  7.               .Range("F" & i) < .Range("B" & j) Then
  8.                   .Range("G" & i) = .Range("F" & i) + .Range("D" & j)
  9.                   Exit For
  10.            End If
  11.         Next
  12.      Next
  13.     End With
  14. End Sub

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 3.929 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут