VBA插入含FILTER函数的公式时自动添加@符号,如何解决?
解决VBA插入FILTER公式自动添加@符号的问题
问题原因
使用VBA的.Formula属性插入动态数组公式(如FILTER)时,Excel会自动添加@(隐式交集运算符)来兼容旧版非数组公式的行为,但这会导致动态数组公式无法正常运行。
解决方案
将代码中的.Formula替换为.Formula2属性——.Formula2是Excel 365/2021及后续版本专门用于处理动态数组公式的属性,不会自动添加@符号。
修改后的代码:
Dim ThisSheet As Worksheet Set ThisSheet = ActiveSheet ThisSheet.Range("H40").Formula2 = "=FILTER(FILTER(AllStaffProjectAllocationTbl,AllStaffProjectAllocationTbl[Project Code Name]=B2), {1,0,0,1,1,1,0,0,0,1,0,0,0,0,0,0,0})"
补充说明
如果你的Excel版本不支持.Formula2(仅适用于Excel 365/2021及以上),可尝试使用.FormulaArray属性,但FILTER本身属于动态数组函数,仅在支持动态数组的Excel版本中可用,因此优先推荐使用.Formula2。
内容的提问来源于stack exchange,提问作者Automation Monkey
相关产品推荐
相关产品推荐

