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

如何在VBA中为统计唯一值的数组公式动态引用列已用区域?

在VBA中动态引用H列已用区域实现唯一值统计数组公式

要实现动态引用H列已用区域并设置数组公式,你可以按以下逻辑编写VBA代码:

  1. 定位H列最后一行:
    使用Cells(Rows.Count, "H").End(xlUp).Row获取H列最后一个非空单元格的行号,这个方法仅针对H列生效,不受工作表其他区域数据干扰。

  2. 拼接动态范围字符串:
    将H2到最后一行的范围拼接成字符串,格式为"H2:H" & lastRow。

  3. 设置数组公式:
    通过单元格的FormulaArray属性写入数组公式,普通Formula属性无法识别数组公式语法。

完整VBA代码示例:

Sub CalculateUniqueCount()
    Dim lastRow As Long
    Dim dynamicRange As String
    
    ' 获取H列最后一个非空单元格的行号
    lastRow = Cells(Rows.Count, "H").End(xlUp).Row
    
    ' 拼接动态范围
    dynamicRange = "H2:H" & lastRow
    
    ' 将数组公式写入目标单元格(示例写入I1,可按需修改)
    Range("I1").FormulaArray = "=SUM(1/COUNTIF(" & dynamicRange & "," & dynamicRange & "))"
End Sub

额外说明

  • 如果H列存在空白单元格,原公式会将空白视为一个唯一值统计。若要排除空白,可修改公式为:
    Range("I1").FormulaArray = "=SUM(IF(" & dynamicRange & "<>"""",1/COUNTIF(" & dynamicRange & "," & dynamicRange & "),0))"
    
  • 确保目标单元格未被保护,否则无法写入公式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 22:02:34