我有一些工作簿每天都在增加。换句话说,工作簿的数量不是一成不变的。我在每个工作簿中有一个工作表,有5列95行。我想获得具有相同工作表和单元格编号但在不同工作簿中的值之间的平均值。例如,这些:
workbook1,sheet1,A1
workbook2,sheet1,A1
workbook3,sheet1,A1
我的工作簿位于同一个文件夹中,它们的名称是d1,d2,d3,.....我想只使用这些工作簿。我结合了我在不同论坛上找到的一些代码,这是我使用的最终代码。我是VBA的新手,感谢你的帮助。
Sub Average_Workbooks()
Dim d As Variant
Dim i As Integer
Dim wb As Workbook
d = Application.GetOpenFilename(filefilter:="Excel Files (d*.xlsx)" & Chr(0) & "d*.xlsx" & Chr(0), MultiSelect:=True)
If Not IsArray(d) Then Exit Sub
Application.ScreenUpdating = False
For i = LBound(d) To UBound(d)
Set wb = Workbooks.Open(d(i))
wb.Sheets(1).Range("A4:F99").Copy
ThisWorkbook.Sheets(1).Range("A4:F99").PasteSpecial Paste:=xlPasteValues, Operation:=xlAverage, SkipBlanks:=True, Transpose:=False
Application.CutCopyMode = False
wb.Close SaveChanges:=False
Next i
Application.ScreenUpdating = True
End Sub