我正在写一个VBA代码,我需要在一张表中引用不同表格中的公式 例如:在单元格(1,3)中的表格A中,有一个公式
"=R[-1]C*R[-2]C"
我希望在单元格(1,3)中的表格B中放置公式
"=A!R[-1]C*A!R[-2]C"
我想只在字符串中保存公式 -
"=R[-1]C*R[-2]C"
并手动进行我需要的调整。
所以我的问题是:
"temp=worksheets("A").cells(1,3)"
时,
我从单元格中找回了值,而不是公式...... 答案 0 :(得分:5)
你可以使用奇怪的单位来获取(并设置)单元格中的公式(在这种情况下为A1
):
Range("A1").Formula
(详见here)。
它只是作为字符串返回,因此您可以使用常规VBA字符串函数评估/操作它,例如left
,right
,mid
,instr
等等
根据链接页面,为常量单元格返回的公式只是常量本身,空白单元格返回""
。
您可以使用该信息来确定其实际是否公式化。
答案 1 :(得分:0)
您可以使用
之类的代码Dim ws1 As Worksheet
Set ws1 = Worksheets("A")
Dim ws2 As Worksheet
Set ws2 = Worksheets("B")
Dim rng1 As Range
Set rng1 = ws1.Range("C1")
Dim rng2 As Range
Set rng2 = ws2.Range("C1")
Dim myf As String
myf = "=R[-1]C*R[-2]C"
rng1.FormulaR1C1 = myf ' The property you were asking about
根据需要调整它。
请注意使用变量来引用Range
s。