|
参与一下。。- Sub 条件筛选()
- Dim arr, brr, i, j, r, d
- Set d = CreateObject("scripting.dictionary") '定义字典
- With Sheet1
- r = .Cells(Rows.Count, 1).End(xlUp).Row '汇总表的最大行
- arr = .Range("a2:y" & r) '把汇总表写入数组arr
- End With
- sb = Sheet2.[b1].Value '需要筛选的型号
- For i = 4 To UBound(arr)
- sa = arr(i, 2) '定义关键字
- d(sa) = d(sa) & "," & i '用字典标记行号
- Next
- ReDim brr(1 To UBound(arr), 1 To UBound(arr, 2)) '定义结果数组
- For Each k In d.keys
- If k = sb Then
- aa = Split(d(k), ",") '拆分行号
- For j = 1 To UBound(aa)
- n = n + 1
- For i = 1 To UBound(arr, 2)
- brr(n, i) = arr(aa(j), i)
- Next
- Next
- End If
- Next
- With Sheet2
- .UsedRange.Cells.Offset(4).Clear
- .[a:a].NumberFormatLocal = "yyyy-m-d"
- .[a5].Resize(n, UBound(brr, 2)) = brr
- .[a5].Resize(n, UBound(brr, 2)).Borders.LineStyle = 1
- End With
- End Sub
复制代码 |
|