如何在VBA的FormulaR1C1中添加动态VLOOKUP函数?
VBA动态插入带双TRIM的VLOOKUP公式解决方案
正确代码实现
Set lookupRange = ThisWorkbook.Sheets("MyDataSheet").Range("A1:E500") Set newCol = tbl.ListColumns.Add ' 构造完整的带双TRIM的R1C1格式公式 newCol.DataBodyRange.FormulaR1C1 = "=VLOOKUP(TRIM(RC[-16]),TRIM('" & lookupRange.Parent.Name & "'!" & lookupRange.Address(True, True, xlR1C1) & "),4,FALSE)"
修正说明
- 给查找范围手动添加
TRIM()包裹:对应手动公式里的TRIM('MyDataSheet'!$A$1:$E$500),解决原代码丢失第二个TRIM的问题 - 通过
lookupRange.Parent.Name获取工作表名并拼接成带单引号的引用:确保公式里包含'MyDataSheet'!前缀,避免仅显示单元格范围 - 保持
xlR1C1格式参数:适配表格的FormulaR1C1赋值要求,让公式在整列自动适配相对引用
最终生成的公式
插入单元格后的公式和手动输入完全一致:
=VLOOKUP(TRIM(C2),TRIM('MyDataSheet'!$A$1:$E$500),4,FALSE)
内容的提问来源于stack exchange,提问作者john
相关产品推荐
相关产品推荐

