|
求大侠们帮我解释下每一个代码的意思,小弟是初学者。
Sub test()
'Application.ScreenUpdating = False
Dim TARR(1 To 10000, 1 To 3)
Range("F2:G1048576").ClearContents
Range("J2:L1048576").ClearContents
TR = 1
For S = 2 To Sheets.Count
For Each C In Sheets(S).UsedRange
If C.Font.ColorIndex = 3 Then
TR = TR + 1
Range("F" & TR) = Sheets(S).Name
Range("G" & TR) = C.Address
End If
Next C
Next S
Rng = Range("F2:G" & TR)
TR = 0
Set fso = CreateObject("scripting.filesystemobject")
For R = 2 To [d65536].End(xlUp).Row
Set ff = fso.getfolder(Range("d" & R))
FSFOLDER = Range("d" & R)
For Each F In ff.Files
Application.DisplayAlerts = False
'八方大厦WLAN.xlsx
fname = Trim(Replace(F.Name, "WLAN.xlsx", ""))
Set t = Range("a:a").Find(fname)
If Not t Is Nothing Then
FSDATE = Range("b" & t.Row)
Workbooks.Open F
For RR = 1 To UBound(Rng)
TR = TR + 1
TARR(TR, 1) = FSFOLDER & "\" & F.Name & "\" & Rng(RR, 1) & "\" & Rng(RR, 2)
TARR(TR, 2) = Sheets(Rng(RR, 1)).Range(Rng(RR, 2))
TARR(TR, 3) = FSDATE
Sheets(Rng(RR, 1)).Range(Rng(RR, 2)) = FSDATE
Next RR
Else
MsgBox fname & " was not on list ????"
End If
Workbooks(F.Name).Close True
Next
Next
[J2].Resize(TR, 3) = TARR
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub
这段代码运行后实现的功能是:
有N个EXCEL表,里面都有一个工作表,且名字相同,比如都是“sheet1”
每个sheet1中的表格格式内容都一样。
比如sheet1中的单元格A2是需要填写日期的,那么汇总表中,在指定的单元格输入日期,而且也必须给出单元格位置,并且把字体标红色,然后运行后,会自动把放在指定文件夹中的每一个EXCEL表格中的A2单元格更新日期,是自动打开自动更新然后关闭。
有一个前提是,在这个文件夹中的文件数量必须和汇总表中一样,名字也要一一对上,否则会报错。
但是等所有的EXCEL表都更新一遍后,这个程序无法停下来,只能按 Esc才能手动停止。那个大侠帮我修改下代码。
还有一个,这个总文件夹是不是只能放桌面上?
新建文件夹 V1只能放桌面上-信号测试.rar
(1.59 MB, 下载次数: 285)
|
|