|
请问:在下面宏中,当我增加了《:"历史","4";"化学","5"》后,显示
[size=0.83em]2018-02-18_032612.jpg (12.35 KB, 下载次数: 0)
下载附件 [url=]保存到相册[/url]
[color=rgb(153, 153, 153) !important]2018-2-18 03:23 上传
如何修改?
Sub 宏1()
Dim arr, brr, d, i&, j%
Set d = CreateObject("scripting.dictionary")
Application.ScreenUpdating = False
Application.DisplayAlerts = False
mypath = ThisWorkbook.Path & "\"
wj = Dir(mypath & "*.xls*")
Worksheets(1).Range("b3:e3").ClearContents
arr = Worksheets(1).Range("a1:e3")
s = [{"数学","2";"物理","3";"英语","4";"语文","5":"历史","4";"化学","5"}]
Do While wj <> ""
If wj <> ThisWorkbook.Name Then
With Workbooks.Open(mypath & wj)
For n = 1 To UBound(s)
If InStr(wj, s(n, 1)) Then
j = s(n, 2)
End If
Next
brr = .Sheets(.Sheets.Count).UsedRange
ncm = .Sheets(.Sheets.Count).Range("d1:aa1").Find(what:="姓名", lookat:=xlWhole).Column
For i = 1 To UBound(brr)
d(brr(i, ncm)) = i
Next
For i = 1 To UBound(arr)
xm = Trim(arr(i, 1))
If xm <> "" Then
If d.exists(xm) Then
m = d(xm)
arr(3, j) = brr(m, ncm + 2)
Else
arr(3, j) = "/"
End If
End If
Next
d.RemoveAll
.Close 0
End With
End If
wj = Dir
Loop
Worksheets(1).Range("a1").Resize(UBound(arr), UBound(arr, 2)) = arr
Columns("A:E").AutoFit
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub
|
|
|