努力将普通的 excel 公式应用到 R1C1 格式中,以便我可以在 VBA 中循环该公式。问题是如何使用 R1C1 表示法引用其他工作表中的列。所以在下面的公式中:
ell.Offset(0, 5).FormulaR1C1 = "=IF(LEN(R[]C[-2])>0,(R[]C[-2])*VLOOKUP([R[]C[1]),Core!A:C,3,FALSE)/_
VLOOKUP(R[]C[-1],Core!A:C,3,FALSE),R[]C[4])"
Run Code Online (Sandbox Code Playgroud)
如何将 Core!A:C 转换为 R1C1 格式?我知道你不能混合这两种格式,但恐怕我不知道这个语法!任何帮助表示赞赏!
编辑:
Sub Expo_dos_Formulas()
'===============================================================================
Sheets("Data_Sheet").Activate
For Each cell In Range("G5:G500")
If cell <> "Error" Then
cell.Offset(0, 5).FormulaR1C1 = "=IF(LEN(R[]C[-2])>0,_
(R[]C[-2])*VLOOKUP([R[]C[1]),Core!RC1:RC3,3,FALSE)/VLOOKUP(R[]C[-1],_
Core!RC1:RC3,3,FALSE),R[]C[4])"
End If
Next
'===============================================================================
End Sub
Run Code Online (Sandbox Code Playgroud)
代替A:Cput C1:C3:
ell.Offset(0, 5).FormulaR1C1 = "=IF(LEN(RC[-2])>0,(RC[-2])*VLOOKUP(RC[1],Core!C1:C3,3,FALSE)/_
VLOOKUP(RC[-1],Core!C1:C3,3,FALSE),RC[4])"
Run Code Online (Sandbox Code Playgroud)
使用 R1C1 时:
在[]将表示相对非绝对基准。例如RC[-1],直接指向左侧的单元格。
如果需要绝对引用,则不要使用[],它将引用行/列号。例如,R[1]C3将返回被引用的行正下方但在 C 列中的行。如果引用的单元格是,A3则它将返回$C4.
如果需要整列或整行,则丢弃Ror C。例如,C1:C3将返回$A:$C并R[1]:R[2]返回引用单元格正下方的两个完整行的相对引用