Excel实现批处理
发布网友
发布时间:2022-09-01 18:39
我来回答
共2个回答
热心网友
时间:2024-11-28 23:57
代码:
Sub test()
Application.ScreenUpdating = False
Dim f, wb, x
f = Application.GetOpenFilename("EXCEL文件,*.*,", 1, MultiSelect:=True)
For x = 1 To UBound(f)
Set wb = Workbooks.Open(f(x))
Workbooks("工作簿1.xlsm").Sheets(1).Range("a1:j3").Copy wb.Sheets(2).Range("a1") '复制标题
wb.Sheets(2).Range("a4") = wb.Sheets(1).Range("a2") '找区站号
wb.Sheets(1).Columns("D:E").Select
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove '插入列
wb.Sheets(1).Range("d2:d" & Range("c10000").End(3).Row) = 1 'C列
Dim y
For y = 2 To wb.Sheets(1).Range("c10000").End(3).Row
wb.Sheets(1).Cells(y, 5) = VBA.DateSerial(Cells(y, 2), Cells(y, 3), Cells(y, 4))
wb.Sheets(1).Cells(y, "e").NumberFormatLocal = "00000"
Next y
wb.Sheets(2).Range("b4") = "=SUMPRODUCT((Sheet1!$E$2:$E$1500>=B1)*(Sheet1!$E$2:$E$1500<=B2)*(Sheet1!$F$2:$F$1500))/SUMPRODUCT((Sheet1!$E$2:$E$1500>=B1)*(Sheet1!$E$2:$E$1500<=B2))"
wb.Sheets(2).Range("b4:j4").FillRight
wb.Sheets(2).Range("a4:j4").Copy
Workbooks("工作簿1.xlsm").Sheets(1).Range("a1000").End(3).Offset(1, 0).PasteSpecial (xlPasteValues) '
wb.Close False
Next x
Application.ScreenUpdating = True
MsgBox "处理完成,请查看!"
End Sub
热心网友
时间:2024-11-28 23:57
使用公式就可以实现吧,
直接在公式中引用不同文件中的表格就可以了,如=“average([Book1]Sheet1!C8,[Book2]Sheet1!C8,[Book3]Sheet1!C8)
再使用填充柄把公式复制一下就可以算同其它月份的了