我已经阅读了许多不同的文章来过滤独特的价值观;但是,几乎所有这些都手动复制到整个列的新位置/循环,我希望避免这样做。
我的要求是根据G2列的单元格的值(例如,All Houses,All Condos,All Apartments等在单独的文件中)将行与单独的工作簿中的单个列分开。 我试图在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
答案 0 :(得分:1)
您获取值是因为您指定了CopyToRange
,因此您知道值的去向。所以无论你刚刚用它作为参考,你现在都可以用来操纵它。
如果您不想使用CopyToRange
,则调用将返回值,因为AdvancedFilter
返回范围对象。因此,您可能希望将.Range语句分配给已初始化的范围。
另一种方法是以这种方式使用With语句:
With sheet.Range(orgLevelLetter & "2", _
.Cells(.Rows.Count,orgLevelLetter).End(xlUp)).AdvancedFilter(xlFilterInPlace, , , True)
<content here>
End With