VBA .formula = If(),Cell(x,y)作为动态参考

时间:2017-04-25 16:14:01

标签: excel vba excel-vba

我一直在努力解决这个问题,但是我显然不能靠自己。

ThisWorkbook.Sheets("GesamteListe").Cells(X, 18).Formula = _
                "=If(" & Cells(X, 16) & " " = " " & Cells(X, 17) & ",""fine"",""not fine"")"

我想比较两个单元格,它们总是在第16和17列中,但两者都是X动态的,这是由之前的动作决定的。我不能让他接受我的细胞(X,16)和细胞(X,17),它们最终应该像这样(示范):

if(P3 = Q3;“fine”;“not fine”)

我猜很简单,但我尝试了各种版本,但都没有。

提前致谢!

2 个答案:

答案 0 :(得分:3)

您需要使用.Address

 "=If(" & Cells(X, 16).Address & "  =  " & Cells(X, 17).Address & ",""fine"",""not fine"")"

"

周围的=位置太多了

答案 1 :(得分:2)

也许这也是@ScottCraner提供的解决方案的可行替代方案:

DirectoryIndex

注意,如果ThisWorkbook.Sheets("GesamteListe").Cells(x, 18).FormulaR1C1 = _ "=If(RC[-2]=RC[-1],""fine"",""not fine"")" 是以下类型的循环的一部分:

X

上述公式可以使用以下公式缩短此循环:

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