VBA filter函数用法
时间: 2023-07-25 21:39:30 浏览: 347
VBA 中的 Filter 函数用于在数组中筛选符合条件的元素,并返回一个新的数组。其语法如下:
```
Filter(SourceArray, Match, [Include], [Compare])
```
其中,参数说明如下:
- `SourceArray`:必需,要进行筛选的数组;
- `Match`:必需,指定筛选条件,可以是字符串或者匿名函数;
- `Include`:可选,指定是否包含符合条件的元素,默认值为 `True`;
- `Compare`:可选,指定字符串比较的方式,默认值为 `vbTextCompare`。
下面是一些示例:
1. 使用字符串筛选元素
```
Dim arr(1 To 5) As String
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",就会被筛选出来。
2. 使用匿名函数筛选元素
```
Dim arr(1 To 10) As Integer
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
```
上述代码中,使用匿名函数 `Function(x) x Mod 2 = 0` 作为筛选条件,表示只有元素为偶数时才会被筛选出来。
阅读全文