0

我浏览了许多过滤独特值的不同文章;然而,几乎所有这些都复制到一个新的位置/手动循环整个列,我想避免这样做。

我的要求是根据 G2 列单元格的值(例如,单独文件中的所有房屋、所有公寓、所有公寓等)将行与单独工作簿中的单个列分开。我正在尝试使用 Excel VBA 中的 AdvancedFilter 将每个唯一值提取到一个数组中,然后遍历这些唯一值以查找所有相应的列值。我不明白 AdvancedFilter 是如何工作的。

xlFilterCopy 和 copyToRange 将唯一值列表复制到指定范围。

xlFilterValues 到底是如何工作的?参考资料说 xlFilterValues “过滤数据”。但是我如何获得这些值?它是否返回某种对象?在调试中,它似乎只是给了我一个布尔值!

为什么会有如此奇怪的记录!感谢人们的帮助。

PS:如果您在没有高级过滤器的情况下有更好的方法来做我需要的事情,请告诉我。

With sheet
.Range(orgLevelLetter & "2", .Cells(.Rows.Count, orgLevelLetter).End(xlUp)).AdvancedFilter xlFilterInPlace, , , True
End With
4

1 回答 1

1

您之所以获得这些值,是因为您指定了CopyToRange,因此您知道这些值的去向。因此,无论您只是用作参考,您现在都可以使用它来操作它。

如果您不想使用CopyToRange,则调用将返回值,因为AdvancedFilter返回一个范围对象。因此,您可能希望将 .Range 语句分配给您已经初始化的范围。

另一种方法是这样使用 With 语句:

With sheet.Range(orgLevelLetter & "2", _
     .Cells(.Rows.Count,orgLevelLetter).End(xlUp)).AdvancedFilter(xlFilterInPlace, , , True)

<content here>

End With
于 2013-12-23T03:09:49.330 回答