|
发表于 2016-4-30 20:34
|
显示全部楼层
本楼为最佳答案
Option Explicit
'主程序
Sub test1()
Dim cfg, p, f
Application.ScreenUpdating = False
cfg = ThisWorkbook.Sheets(1).[r1].CurrentRegion
p = ThisWorkbook.Path & "\"
f = Dir(p)
Do While f <> ""
Call test2(cfg, p, f)
f = Dir
Loop
End Sub
'运行工作簿的条件:指定扩展名、不是本工作簿
Sub test2(cfg, p, f)
Dim i
For i = 2 To UBound(cfg)
If f = ThisWorkbook.Name Then Exit Sub
If InStr(1, f, cfg(i, 1), vbTextCompare) Then Call test3(cfg, p, f): Exit Sub
Next i
End Sub
'操作某一个工作簿
Sub test3(cfg, p, f)
Dim A, i, j, k
With Workbooks.Open(p & f)
A = .Sheets(1).Range("a1").CurrentRegion
For k = 2 To UBound(cfg)
For j = 1 To UBound(A, 2)
If cfg(k, 2) = A(1, j) Then
'替换
For i = 2 To UBound(A)
A(i, j) = cfg(2, 3)
Next i
.Sheets(1).[a1].Resize(UBound(A), UBound(A, 2)) = A
.Close True
Exit Sub
End If
Next j
Next k
.Close False
End With
End Sub
求助2.rar
(23.63 KB, 下载次数: 15)
|
|