部分内容引用于https://blog.csdn.net/sptoor/article/details/52790892
Range("C2:C58").FormulaR1C1 = "=VLOOKUP(RC[-1],Sheet2!R2C1:R11C2,2,0)"
'FormulaR1C1是公式输入方法?
'相对引用:有中括号是相对于选定单元格的相对偏移量,"-"为向左或向上偏移,正数为右或下偏移。
'绝对引用:无中括号为相对于选定单元格的绝对偏移量,没有负数 .R1C1代表A1单元格,R5C6代表F5单元格
'混合引用:1、特殊情况,R或C后不填写表示活动(选定)单元格当前所有行或列
' 2、其他情况遵守相对与绝对引用规则
'
'看到那个公式是在双引号里面的,说明在VBA里面这个只是个字符串,FormulaR1C1不接受变量.
'如:选定单元格为C8'R[-1]C[-1]为B7单元格,行列都-1,R[1]C[2]为E9单元格,行+1,列+2
'例:C1单元格为"=A1+B1" ,相对引用1
Range("C1").FormulaR1C1 = "=RC[-2]+RC[-1]"'例:C1单元格为"=A2+E3",相对引用2
Range("C1").FormulaR1C1 = "=R[1]C[-2]+R[2]C[2]"'例:C1单元格为"=A2+E3",绝对引用
Range("C1").FormulaR1C1 = "=R2C1+R3C5"
Range("C1") = "=A2+E3" '其实使用这种方式更直接明了,如果要绝对引用,推荐此法'例:C1单元格为"=A1+C4",混合引用1。
Range("C1").FormulaR1C1 = "=RC1+R4C"'例:C1单元格为"=A1+E5",混合引用2。
Range("C1").FormulaR1C1 = "=RC1+R[4]C[2]"