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"")"