VBA filter函数用法及示例
时间: 2023-08-10 19:06:12 浏览: 624
VBA 中的 Filter 函数用于筛选数组中符合条件的元素,并返回一个新的数组。其语法如下:
```
Filter (SourceArray(), Match, [Include], [Compare])
```
其中,参数说明如下:
- `SourceArray()`:要进行筛选的数组;
- `Match`:表示筛选条件,可以使用匿名函数或者字符串来指定条件;
- `Include`:可选参数,表示是否包含符合条件的元素;
- `Compare`:可选参数,指定字符串比较的方法,可以是 vbBinaryCompare、vbTextCompare 或者 vbDatabaseCompare。
下面是一些示例:
1. 使用匿名函数筛选出数组中的偶数元素:
```
Dim arr() As Integer
ReDim arr(1 To 10)
For i = 1 To 10
arr(i) = i
Next i
Dim evenArr() As Integer
evenArr = Filter(arr, Function(x) x Mod 2 = 0)
For i = LBound(evenArr) To UBound(evenArr)
Debug.Print evenArr(i)
Next i
```
输出结果为:
```
2
4
6
8
10
```
2. 使用字符串筛选出数组中包含指定字符的元素:
```
Dim arr() As String
ReDim arr(1 To 5)
arr(1) = "apple"
arr(2) = "banana"
arr(3) = "orange"
arr(4) = "pear"
arr(5) = "grape"
Dim filterArr() As String
filterArr = Filter(arr, "*a*", True)
For i = LBound(filterArr) To UBound(filterArr)
Debug.Print filterArr(i)
Next i
```
输出结果为:
```
apple
banana
orange
grape
```
上述代码中,使用字符串 `"*a*"` 作为筛选条件,表示包含字符 "a" 的元素都会被筛选出来,并且包含符合条件的元素。
阅读全文