将字符串写入单元格时,VBA会插入额外的单引号

Der*_*rek 5 excel vba excel-vba

我正在尝试使用VBA编写此公式:

ActiveCell.Value = "=f(R[-1]C[0],Sheet1!" & ColumnLetter & i & ")"
Run Code Online (Sandbox Code Playgroud)

其中ColumnLetter是我的宏之前计算的一些变量字母,而f是某个函数,而我是一些数字.

问题是,当我运行它时,相反给出了单元格:(如果ColumnLetter = F,i = 16):

=f(R[-1]C[0],Sheet1!'F16')
Run Code Online (Sandbox Code Playgroud)

但我想要:

=f(R[-1]C[0],Sheet1!F16)
Run Code Online (Sandbox Code Playgroud)

为什么VBA或Excel会在F16附近放置这些单引号?如果我在公式中不包含R [-1] [0]作为参数,它不会插入这些额外的引号,但我需要包含它.

非常感谢!

chr*_*sen 9

它的组合R1C1A1解决.您需要选择一种方法并将其用于两个部分.
请注意,如果您键入=f(R[-1]C[0],Sheet1!F16)单元格,则会出于同样的原因出错.

你说你需要使用R1C1样式作为第一个地址,但是(假设这是因为你不想要绝对地址)你可以.Offset改用

ActiveCell.Value = "=f(" & ActiveCell.Offset(-1, 0).Address(False, False) _
 & ",Sheet1!" & ColumnLetter & i & ")"
Run Code Online (Sandbox Code Playgroud)