我想将工作表2的单元格A5的值用于工作表1中宏的活动公式。但是,我得到了
错误1004(应用程序定义或对象定义的错误)。
如果使用静态值(例如100)而不是'Sheet 2'!A5
,则它可以正常工作。
下面是我的代码:
ActiveCell.FormulaR1C1 = "=if('Sheet 2'!RC>'Sheet 2'!A5,""PASS"", ""FAIL"")"
答案 0 :(得分:2)
您不能将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