我正在尝试使用VBA编写此公式:
ActiveCell.Value = "=f(R[-1]C[0],Sheet1!" & ColumnLetter & i & ")"
其中ColumnLetter是我的宏之前计算的变量字母,f是某个函数,而且我是一个数字。
问题在于,当我运行它时,相反给出了单元格:(如果ColumnLetter = F,i = 16):
=f(R[-1]C[0],Sheet1!'F16')
但我想:
=f(R[-1]C[0],Sheet1!F16)
为什么VBA或Excel会将这些单引号放在F16附近?如果我在公式中不包含R [-1] [0]作为参数,它不会插入这些额外的引号,但我需要包含它。
非常感谢!
答案 0 :(得分:9)
它是R1C1
和A1
寻址的组合。您需要选择一种方法并将其用于两个部分
请注意,如果您在单元格中键入=f(R[-1]C[0],Sheet1!F16)
,则出于同样的原因会出现错误。
你说你需要使用R1C1样式作为第一个地址,但(假设这是因为你不想要
绝对地址)您可以使用.Offset
代替
ActiveCell.Value = "=f(" & ActiveCell.Offset(-1, 0).Address(False, False) _
& ",Sheet1!" & ColumnLetter & i & ")"
答案 1 :(得分:1)
Apostrophe意味着Excel应将其解释为文本。
将其写入ActiveCell.Formula。这样就被认为是公式。