VBA, если формула не работает?
У меня есть некоторый код VBA, который работает между несколькими книгами
Я столкнулся с проблемой, когда я не могу применить эту формулу IF. Я не уверен, как я получаю Subscript out of range
ошибка.
Я пытался использовать .Range("O")
, .Range("O:O")
, .Range("O", i)
но все дают ту же ошибку 1004.
Я использую.Range() неправильно? Я смог использовать диапазон по другой формуле, поэтому не уверен, почему это не сработает.
Sub if_after()
Dim co_detail As Workbook
Set co_detail = ThisWorkbook
With co_detail.Sheets("Detail")
For i = 2 To 100
.Range("O2").Formula = "=IF(L" & i & "=N" & i & ",'good','update')"
Next i
End With
End Sub
3 ответа
Это ноль, а не о, и для текста используются полные кавычки. Кавычки также должны быть удвоены в строке в кавычках.
.Range("o" & i).Formula = "=IF(L" & i & "=N" & i & ", ""good"", ""update"")"
Вы можете упростить весь этот код до следующего - вообще не нужно зацикливаться, вы можете просто Resize
:
Sub If_after()
ThisWorkbook.Sheets("Detail").Range("O2").Resize(99).Formula = "=IF(L2=N2,""good"",""update"")"
End Sub
Вместо того, чтобы использовать .Range("o" & i).Formula = …
попробуйте использовать .Range("o" & i).FormulaR1C1 …
, Я всегда использую FormulaR1C1
вместо Formula
,