Ошибка Run-time error 9: subscript out of range. В чем причина? - VBA
Формулировка задачи:
В VBA не очень шарю, но пришлось написать программу для выставления цен. Появляется ошибка, не могу понять, что не так.
Задача: написать программу, которая берет число из ячейки F1, если оно больше значения из ячейки A1 и меньше B1, то в ячейку G1 записывается сумма F1+D1, если нет, то сравнивает F1 с A2 и B2. Ну и цикл дальше, в столбце F много срок, которые нужно сравнить. К F1 должно прибавляться значение из ячейки столбца D, которое соответствует строке интервала, в который F1 попадает.
Ошибку выдает в строке с IF. Помогите разобраться, пожалуйста.
Листинг программы
- Private Sub CommandButton1_Click()
- Dim x As Integer
- Dim i As Integer
- Dim k As Integer
- i = 1
- k = 1
- For x = 1 To 200
- 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
- ThisWorkbook.Worksheets("Sheet1").Cells(G, i) = ThisWorkbook.Worksheets("Sheet1").Cells(F, i) + ThisWorkbook.Worksheets("Sheet1").Cells(D, k)
- i = i + 1
- Else
- k = k + 1
- End If
- Next
- End Sub
Решение задачи: «Ошибка Run-time error 9: subscript out of range. В чем причина?»
textual
Листинг программы
- Private Sub CommandButton1_Click()
- Dim i As Integer, j As Integer
- With ThisWorkbook.Worksheets("Sheet1")
- For i = 1 To 200
- For j = 1 To 200
- If .Range("F" & i) > .Range("A" & j) And _
- .Range("F" & i) < .Range("B" & j) Then
- .Range("G" & i) = .Range("F" & i) + .Range("D" & j)
- Exit For
- End If
- Next
- Next
- End With
- End Sub
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д