FormulaR1C1不起作用

时间:2016-02-09 08:40:03

标签: excel vba excel-vba

我有以下代码:

Dim lastrow As Double
Dim lastrowX As String

lastrow = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row

lastrowX = "X2:X" & lastrow
Range(lastrowX).FormulaR1C1 = "=IF(RC[-4]=RC[-19],RC[-15],"""")"

问题在于,它不是使用公式,而是给我以下内容:

=IF(RC[-4]=RC[-19],RC[-15],"""")

为什么excel不想"转换" RC参考?

1 个答案:

答案 0 :(得分:3)

因为单元格格式化不允许将公式视为真实公式。由于单元格可能被格式化为文本。

替换以下代码行

Range(lastrowX).FormulaR1C1 = "=IF(RC[-4]=RC[-19],RC[-15],"""")"

使用

With Range(lastrowX)
    .Clear
    .FormulaR1C1 = "=IF(RC[-4]=RC[-19],RC[-15],"""")"
End With