You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Excel VBA写入FILTER公式自动加@仅返回单行,如何解决?

@符号自动添加的原因

你通过VBA的FormulaR1C1属性写入公式时,Excel会默认启用旧版公式的兼容逻辑,对于可返回多结果的动态数组公式,会自动添加@隐式交叉运算符,强制仅返回单个值,这就是你仅能得到第一行结果的原因。手动输入公式时Excel会自动识别溢出场景,不会触发该兼容逻辑。

解决方法

直接将代码中的FormulaR1C1替换为Formula2R1C1即可。Formula2是微软为适配动态数组公式推出的专用属性,写入时不会自动添加@运算符,公式可正常溢出填充全部结果。

修改后的完整代码如下:

Sub JoinCommon()
    Dim sInput: Set sInput = Workbooks("VGadjustment.xlsm").Sheets("inputs")
    Dim n: Let n = sInput.Cells(5, 8).Value
    Dim cVGR: Set cVGR = Workbooks("VGadjustment.xlsm").Sheets("CleanVGRevenue")
    Dim nVGR: Let nVGR = cVGR.Cells(1, 3).Value
    cVGR.Cells(9, 5).Formula2R1C1 = "=UNIQUE(FILTER(inputs!R8C7:R" & n + 7 & "C7,COUNTIF(CleanVGRevenue!R9C2:R" & nVGR + 8 & "C2,inputs!R8C7:R" & n + 7 & "C7)))"
End Sub

内容的提问来源于stack exchange,提问作者Dylan Sinclair

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 17:18:04