请参阅另一张纸上的单元格

时间:2018-11-15 16:56:49

标签: excel vba excel-vba

这似乎是我应该能够弄清楚的东西,但是,我为此感到挣扎。

我尝试将范围设置为变量,然后在方程式中引用该范围。变量虽然采用单元格的当前值。您可能从昨天开始就认识到这一点。我已经开始使用它了,但是有人说我应该将变量称为范围,这就是我遇到的问题。

    Dim Sacc, GSacc As Range

   'I want this to refer to the range, that is happening is Sacc = "Test Cell"
    Set Sacc = Sheets(2).Range("F4")

    Sacc.Select 'this works

    'run-time error 1004
    ActiveCell.Offset(1).Formula = "=IF('" & Sacc & " = """",""LMonth not done"",""LMonth Done"")" 

2 个答案:

答案 0 :(得分:0)

认为您需要引用单元格的地址。您不需要首先选择单元格,并且应该在每个声明之后添加变量类型。在您的代码中,Sacc被声明为variant

Sub x()

Dim Sacc As Range, GSacc As Range

Set Sacc = Sheets(2).Range("F4")

Sacc.Offset(1).Formula = "=IF(" & Sacc.Address & " = """",""LMonth not done"",""LMonth Done"")"

End Sub

enter image description here

答案 1 :(得分:0)

您可以使用R1C1表示法并简化代码

您不想选择任何内容

如下。

Sheets(2).Range("F5").Formula = "=IF(R[-1]C = """",""LMonth not done"",""LMonth Done"")"

您还可以使用ISBLANK() excel函数测试空单元格:

Sheets(2).Range("F4").Offset(1).Formula = "=IF(ISBLANK(R[-1]C),""LMonth not done"",""LMonth Done"")"