R1C1使用变量设置行号(VBA)

时间:2016-12-04 18:43:41

标签: vba excel-vba variables excel-formula excel

需要使用R1C1公式中的变量来设置行号。 目标是使用变量“lngAccount_ER”来替换公式结束行中的硬代码“120”

lngAccount_ER = xxx

.Cells(1, 34).FormulaArray = "=INDEX(R12C29:R120C29,MATCH(RC31&R10C&R9C,R12C22:R120C22&R12C28:R120C28&R12C27:R120C27,0))"

我尝试了以下内容,但我确定我的语法已关闭:

.Cells(1, 34).FormulaArray = "=INDEX(R12C29:R & lngAccount_ER & C29,MATCH(RC31&R10C&R9C,R12C22:R& lngAccount_ER & C22&R12C28:R& lngAccount_ER & C28&R12C27:R & lngAccount_ER & C27,0))"

感谢您的帮助!!

1 个答案:

答案 0 :(得分:1)

每当你混合一个"硬编码" String带有变量,您需要使用"关闭字符串并添加&。在变量之后也是如此,在下一个字符串之前添加&"

你很接近,修改你的行:

.Cells(1, 34).FormulaArray = "=INDEX(R12C29:R & lngAccount_ER & C29,MATCH(RC31&R10C&R9C,R12C22:R& lngAccount_ER & C22&R12C28:R& lngAccount_ER & C28&R12C27:R & lngAccount_ER & C27,0))"

要:

.Cells(1, 34).FormulaArray = "=INDEX(R12C29:R" & lngAccount_ER & "C29,MATCH(RC31&R10C&R9C,R12C22:R" & lngAccount_ER & "C22&R12C28:R" & lngAccount_ER & "C28&R12C27:R" & lngAccount_ER & "C27,0))"