我如何填写FormulaR1C1?

时间:2015-07-20 09:13:20

标签: excel-vba excel-formula vba excel

我正在尝试填写一个公式R1C1,我正在使用的代码用于数字或字符串条目,但不适用于公式。   这就是我到目前为止所拥有的

Dim sourceCol As Integer, rowCount As Integer
sourceCol = 4
rowCount = Cells(Rows.Count, sourceCol).End(xlUp).Row
Range("K11:K" & LastRow).FormulaR1C1 = "=IF(R[0]C[-8]="""","",R[0]C[-9]&R[0]C[-6])"

D列中的最后一个单元格大约为1000,我知道这在其他情况下有效。 你能帮忙吗?

由于

2 个答案:

答案 0 :(得分:0)

我在这里提供了几个解决方案 - 使用FillDown关键字或仅参考整个范围 另外,你没有在公式中加上足够的双引号 - 它们都需要加倍 在R1C1表示法中,您只需使用R引用相同的行而不是R [0]

  • RC 是同一行,同一列。
  • R [-1] C 是同一列,-1行
  • R1C2 是第1行,第2列

    With ActiveSheet
    
        ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
        '- To FillDown you can use.
        '.Range("K11").FormulaR1C1 = "=IF(RC[-8]="""""""","""",RC[-9]&RC[-6])"
        '.Range(.Cells(11, 11), .Cells(rowCount, 11)).FillDown
        ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    
        .Range(.Cells(11, 11), .Cells(rowCount, 11)).FormulaR1C1 = "=IF(RC[-8]="""""""","""",RC[-9]&RC[-6])"
    End With
    

答案 1 :(得分:0)

Darren的上述帮助有效,但下面也有。

    Dim sourceCol As Integer, rowCount As Integer
sourceCol = 4
rowCount = Cells(Rows.Count, sourceCol).End(xlUp).Row
Range("K11:K" & rowCount).FormulaR1C1 = "=IF(RC[-8]="""","""",RC[-9]&RC[-6])"