|
发表于 2014-3-15 16:27
|
显示全部楼层
本楼为最佳答案
- Sub Macro1()
- Dim arr, brr, crr(1 To 60000, 1 To 2), wb As Workbook, d, d2, mypath$, zf$
- Application.ScreenUpdating = False
- Set d = CreateObject("scripting.dictionary")
- Set d2 = CreateObject("scripting.dictionary")
- mypath = ThisWorkbook.Path & ""
- zf = [a3]
- Set wb = GetObject(mypath & "卷内目录.xls")
- arr = wb.Sheets(1).Range("a1").CurrentRegion
- wb.Close 0
- Set wb = GetObject(mypath & "案卷目录.xls")
- brr = wb.Sheets(1).Range("a1").CurrentRegion
- wb.Close 0
- For i = 2 To UBound(brr)
- d(brr(i, 10)) = i
- Next
- For i = 2 To UBound(arr)
- If arr(i, 1) Like "*" & zf & "*" Then
- If Not d2.exists(d(arr(i, 5))) Then
- d2(d(arr(i, 5))) = ""
- s = s + 1
- crr(s, 1) = brr(d(arr(i, 5)), 4)
- crr(s, 2) = brr(d(arr(i, 5)), 8)
- End If
- End If
- Next
- [b3:c65536].ClearContents
- If s > 0 Then Range("b3").Resize(s, 2) = crr
- Application.ScreenUpdating = True
- End Sub
复制代码 |
|