VBA如何设置带动态变量的UNIQUE公式提取列表唯一值
VBA生成UNIQUE公式提取A列唯一值的修正方案
错误原因
原有代码核心问题是混用了R1C1引用规则与A1引用规则的写法,导致最终拼接出的公式语法非法,Excel无法正常解析。同时多余的Select操作会降低代码稳定性。
修正后代码
Dim lastRow As Long With ActiveSheet ' 读取A列最后一行有数据的行号 lastRow = .Cells(.Rows.Count, "A").End(xlUp).Row ' 直接给B1单元格赋值动态数组公式,使用A1引用样式逻辑更清晰 .Range("B1").Formula2 = "=UNIQUE(A1:A" & lastRow & ")" End With
补充说明
- 如果你坚持要使用R1C1引用样式写法,对应公式写法为:
.Range("B1").Formula2R1C1 = "=UNIQUE(R1C1:R" & lastRow & "C1)" - 注意:UNIQUE是动态数组函数,仅支持Office 365、Office 2021及更高版本的Excel,低版本Excel需要改用字典遍历、高级筛选等方案实现唯一值提取
内容的提问来源于stack exchange,提问作者chicagobeast12
相关产品推荐
相关产品推荐

