|
楼主 |
发表于 2019-6-12 02:19
|
显示全部楼层
由于行数限制,一楼没有代码全部,下面是全部代码
Sub kd()
Dim wb As Workbook
Dim str As String
t = Timer
ss = "12"
st = "B"
sr = "J"
k = 1
Application.ScreenUpdating = False
str = Dir("d:\data\*.xls*")
For Z = 1 To 3
Set wb = Workbooks.Open("d:\data\" & str)
Dim arr1(), arr2(), arr3(), arr4()
For m = 3 To 2 Step -1
ActiveSheet.Rows(m).Delete
Next
arr1 = [a1].CurrentRegion.Value2
ReDim arr2(1 To UBound(arr1), 1 To UBound(arr1, 2))
ReDim arr3(1 To UBound(arr1), 1 To UBound(arr1, 2))
ReDim arr4(1 To UBound(arr1), 1 To UBound(arr1, 2))
For i = 1 To UBound(arr1)
If InStr(ss, Mid(arr1(i, 2), 6, 2)) <> 0 Then
k = k + 1
For j = 1 To UBound(arr1, 2)
arr2(1, j) = arr1(1, j)
arr2(k, j) = arr1(i, j)
Next
End If
Next
For m = 1 To UBound(arr2)
If InStr(st, arr2(m, 3)) = 0 Then
w = w + 1
For n = 1 To UBound(arr2, 2)
arr3(w, n) = arr2(m, n)
Next
End If
Next
For p = 1 To UBound(arr3)
If InStr(sr, Left(arr3(p, 4), 1)) = 0 Then
r = r + 1
For q = 1 To UBound(arr3, 2)
arr4(r, q) = arr3(p, q)
Next
End If
Next
ActiveSheet.[a1].Resize(UBound(arr1), UBound(arr4, 2)) = arr4
wb.Save
wb.Close savechanges:=False
str = Dir
If str = "" Then Exit For
Next
Application.ScreenUpdating = True
MsgBox Timer - t
End Sub |
|