我在使用VBA的“Filter”功能时遇到了一些问题。我正在尝试使用多个后续过滤器,逐步减少数组中包含我需要的值的数量。然而,似乎只返回与“Match”值匹配的第一个元素,而不是后续的元素?
举个例子,运行下面的代码时,第二个“调试调用”返回“1”,但应该返回“2”。
Function FilterAnArray()
Dim names As Variant
names = Array("Ann Smith", "Barry Jones", "John Smith", "Stephen Brown", "Wilfred Cross")
Debug.Print UBound(names)
Dim smithNames As Variant
smithNames = Filter(names, "Smith")
Debug.Print UBound(smithNames)
End Function
版本信息等。
我正在运行Excel 2016,版本号为16.0.8730.2046 - 64位。非常感谢您对此问题的帮助!
Option Base 1
并且你要分享你的代码给别人,那么准备好会有很多麻烦。 - VityataOption Explicit
是可以的,但是Option Base 1
可能会引起问题。不过这是另一个话题了。 - Vityata