我只想将公式应用于满足条件的行,但是以某种方式将公式应用于所有行。
我有一个带有表格的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列下插入公式,但我不明白为什么我的代码不起作用。
答案 0 :(得分:4)
GSerg在注释中指出,此行为是由于Excel自动填充了表格中的公式所致。
您可以在代码中插入以下内容,这将关闭自动填充功能:
Application.AutoCorrect.AutoFillFormulasInLists = False
请记住,如果正常情况下您是希望这样做(或者与他人共享此宏),请再次将其重新设置为True。