Я хочу применить формулу только к строкам, которые удовлетворяют условию, но она каким-то образом применяет формулу ко всем строкам.
У меня есть лист Excel с таблицей в нем. Для столбца Q я хочу добавить формулу, только если значение столбца K НЕ равно 0, а значение столбца I равно 0.
Но вместо того, чтобы применять его к строкам, удовлетворяющим условию, он применяет формулу ко всем строкам в столбце Q.
Я добавил оператор if, и он, кажется, работает, когда я запускаю программу в режиме отладки и проверяю, соответствуют ли правильные строки условию if.
Что странно, если я попытаюсь поместить какую-нибудь случайную строку в строки для «else», это сработает! Но я ничего не хочу в тех строках, которые не удовлетворяют условию.
Dim lRow, i As Integer
lRow = ActiveSheet.Cells(Rows.Count, "A").End(xlUp).Row
For i = 2 To lRow 'Starts from i=2 because i=1 is the headers
If Range("K" & i).Value <> 0 And Range("I" & i).Value = 0 Then
Range("Q" & i).FormulaR1C1 = "=RC[-6]" 'This is the formula.
Else
Range("Q" & i).Value = "" 'Doesn't work.
Range("Q" & i).Value = "XXX" 'Works, but it inserts "XXX" to the cells. Ideally, I dont want anything, any formula in the cells.
End If
Next i
Я ожидаю, что строки, удовлетворяющие условию, должны вставить формулу в столбец Q, но я не понимаю, почему мой код не работает.