
excel
VBASub FilterArray() Dim ws1 As Worksheet Dim ws2 As Worksheet Dim dataArr As Variant Dim filterArr As Variant Dim resultArr As Variant Dim i As Integer Dim j As Integer ' 设置工作表 Set ws1 = ThisWorkbook.Sheets("Sheet1") Set ws2 = ThisWorkbook.Sheets("Sheet2") ' 将需要筛选的数据存储在一个数组中 dataArr = ws1.Range("A1:C10").Value ' 定义过滤条件数组 filterArr = Array("销售部") ' 设置结果数组的大小 ReDim resultArr(1 To UBound(dataArr, 1), 1 To UBound(dataArr, 2)) ' 对数组进行筛选 For i = 1 To UBound(dataArr, 1) If dataArr(i, 2) = filterArr(0) Then For j = 1 To UBound(dataArr, 2) resultArr(i, j) = dataArr(i, j) Next j End If Next i ' 将筛选结果输出到Sheet2中 ws2.Range("A1").Resize(UBound(resultArr, 1), UBound(resultArr, 2)).Value = resultArr ' 清除筛选 ws2.AutoFilterMode = False ' 清空变量 Set ws1 = Nothing Set ws2 = Nothing Erase dataArr Erase filterArr Erase resultArrEnd Sub三、案例代码解析1. 首先,我们定义了需要使用的变量,包括工作表对象、数据数组、筛选条件数组和结果数组。2. 然后,我们设置了需要操作的工作表对象。3. 接下来,我们将需要筛选的数据存储在一个数组中,这里我们假设数据范围是A1:C10。4. 定义了过滤条件数组,这里我们只筛选部门为"销售部"的员工信息。5. 设置结果数组的大小,这里我们使用了UBound函数来确定数组的维度。6. 使用循环对数组进行筛选,如果部门与过滤条件相符,则将该行数据存储到结果数组中。7. 将筛选结果输出到Sheet2中的A1单元格开始的区域。8. 清除筛选,确保下次运行时不受之前的筛选影响。9. 最后,清空变量,释放内存。本文介绍了如何使用excel VBA自动筛选数组,并提供了一个简单的案例代码来帮助读者理解。通过使用VBA自动筛选数组,我们可以大大提高数据处理的效率,减少了手动筛选的繁琐和耗时。希望本文对读者在excel数据处理方面有所帮助。Copyright © 2025 IZhiDa.com All Rights Reserved.
知答 版权所有 粤ICP备2023042255号