excel VBA FormulaR1C1 中使用的公式是否可以使用变量的问题

来源:百度知道 编辑:UC知道 时间:2024/06/06 05:23:33
请问大侠可否在FormulaR1C1中使用如下公式:
Dim x As Variant
x = 5.5
ActiveCell.FormulaR1C1 = "=IF(RC[-1]>-110,(RC[-1]-x),RC[-1])"

编译报错,将公式改为ActiveCell.FormulaR1C1 = "=IF(RC[-1]>-110,(RC[-1]-5.5),RC[-1])"则可以通过,请问如何将此公式中的5.5变成变量?非常感谢!
很感谢,但是ActiveCell.FormulaR1C1 = "=IF(RC[-1]>-110,(RC[-1]-" & x & "),RC[-1])" 是不行的,改成ActiveCell.FormulaR1C1 = "=IF(RC[-1]>-110,(RC[-1]-"" & x & ""),RC[-1])" 也不行。

既然公式中用到这个变量,那肯定是具有某种意义的。
建议在Excel中用一个单元格来记录这个变量,发生变化时通过VBA代码更新该单元格内容。这样公式中也就可以直接用R1C1相对格式表示法来引用了,而且也方便后期维护管理。

如用两个单元格记录:
系数
5.5
或:
系数 5.5

如果不想给使用者看到,可以放在比较隐秘的部位(比如图表后面,右边屏幕显示区域外)。

而且,楼主,我试验过了,一楼的方法是可以的呀!
ActiveCell.FormulaR1C1 = "=IF(RC[-1]>-110,(RC[-1]-" & x & "),RC[-1])"
通过字符串连接符&接成完整的公式,应该是没有问题的。 麻烦楼主再试试。
有问题hi我吧 ;-)

看到那个公式是在双引号里面的,说明在VBA里面这个只是个字符串

改成下面的看看:

ActiveCell.FormulaR1C1 = "=IF(RC[-1]>-110,(RC[-1]-" & x & "),RC[-1])"

不行,主要是FormulaR1C1不接受变量。
我想你这个公式完全可以通过自定义一个简单的函数来实现。