VBA .formula = If()与Cell(x,y)作为dynamic引用
我很努力地解决这个问题,但是我显然不能自己解决。
ThisWorkbook.Sheets("GesamteListe").Cells(X, 18).Formula = _ "=If(" & Cells(X, 16) & " " = " " & Cells(X, 17) & ",""fine"",""not fine"")"
我想比较两个单元格,这些单元格总是在第16列和第17列中,但是都是由Xdynamic的,这是由之前的动作决定的。 我不能让他接受我的单元格(X,16)和单元格(X,17),最终应该看起来像这样(示例):
如果(P3 = Q3;“罚款”;“不好”)
我猜很容易,但我尝试了各种版本,没有任何作品。
提前致谢!
您需要使用。 .Address
"=If(" & Cells(X, 16).Address & " = " & Cells(X, 17).Address & ",""fine"",""not fine"")"
你也有太多的"
=
也许这也是@ScottCraner提供的解决scheme的可行替代scheme:
ThisWorkbook.Sheets("GesamteListe").Cells(x, 18).FormulaR1C1 = _ "=If(RC[-2]=RC[-1],""fine"",""not fine"")"
请注意,如果X
是以下types的循环的一部分:
Dim x As Long For x = 2 To 20 ThisWorkbook.Worksheets("GesamteListe").Cells(x, 18).FormulaR1C1 = _ "=If(RC[-2]=RC[-1],""fine"",""not fine"")" Next x
上述公式可以用下面的公式简化这个循环:
ThisWorkbook.Worksheets("GesamteListe").Range("R2:R20").FormulaR1C1 = _ "=If(RC[-2]=RC[-1],""fine"",""not fine"")"