[英]How do I get a list of unique values from a column in Excel VBA?
我浏览了许多不同的文章,这些文章过滤了唯一的值。 但是,几乎所有它们都会复制到一个新位置/手动遍历整个列,这是我想避免的。
我的要求是根据G2列的单元格的值(例如,单独文件中的“所有房屋”,“所有公寓”,“所有公寓”等),在单独的工作簿中将行与单个列分开)。 我试图在Excel VBA中使用AdvancedFilter将每个唯一值提取到数组中,然后遍历这些唯一值以查找所有对应的列值。 我不知道AdvancedFilter是如何工作的。
xlFilterCopy和copyToRange一起将唯一值列表复制到指定范围。
但是,xlFilterValues如何工作? 该参考资料说xlFilterValues“将数据过滤到位”。 但是,如何获取这些值? 它是否返回某种对象? 在调试中,它似乎给了我一个布尔值!
为什么如此奇怪地记录在案! 感谢您的帮助。
PS:如果没有AdvancedFilter,您有更好的方法来做我需要的事情,请告诉我。
With sheet
.Range(orgLevelLetter & "2", .Cells(.Rows.Count, orgLevelLetter).End(xlUp)).AdvancedFilter xlFilterInPlace, , , True
End With
之所以得到这些值,是因为您指定了CopyToRange
,因此您知道这些值在哪里。 因此,无论您刚刚用作参考,现在都可以对其进行操作。
如果您不想使用CopyToRange
,则调用将返回这些值,因为AdvancedFilter
返回了一个范围对象。 因此,您可能希望将.Range语句分配给已经初始化的范围。
一种替代方法是使用With语句:
With sheet.Range(orgLevelLetter & "2", _
.Cells(.Rows.Count,orgLevelLetter).End(xlUp)).AdvancedFilter(xlFilterInPlace, , , True)
<content here>
End With
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.