【问题标题】:Run Time Error on Active formula in Excel Macro codeExcel宏代码中活动公式的运行时错误
【发布时间】:2025-11-23 11:30:02
【问题描述】:

我想将工作表 2 的单元格 A5 的值用于工作表 1 的宏中的活动公式。但是,我得到了一个

错误 1004(应用程序定义或对象定义错误)。

如果使用静态值,例如 100,而不是 'Sheet 2'!A5,它可以工作。

下面是我的代码:

ActiveCell.FormulaR1C1 = "=if('Sheet 2'!RC>'Sheet 2'!A5,""PASS"", ""FAIL"")"

【问题讨论】:

    标签: vba excel excel-formula


    【解决方案1】:

    您不能将 xlA1 单元格引用与 xlR1C1 单元格引用混合和匹配。 A5 是 xlR1C1 语法中的 R5C1。

    ActiveCell.FormulaR1C1 = "=if('Sheet 2'!RC>'Sheet 2'!R5C1,""PASS"", ""FAIL"")"
    

    现在,在此公式中,RC 是对“工作表 2”上与活动工作表上的活动单元格所在的同一单元格的相对行/相对列引用。但是,'Sheet 2'!R5C1 引用将是绝对行/绝对列,如 'Sheet 2'!$A$5。

    如果您需要对 'Sheet 2'!A5 的相对行/相对列引用,那么您需要使用 .Formula 而不是 .FormulaR1C1 并以 xlA1 方式引用活动单元格的地址。

    with ActiveCell
        .Formula = "=if('Sheet 2'!" & .address(0, 0) & ">'Sheet 2'!A5,""PASS"", ""FAIL"")"
    end with
    

    【讨论】:

      最近更新 更多