|
各位大神,如附件所示,在网上找了一段VBA,可以实现多个工作簿、多个相同名字工作表合并的功能,但只能从表格的第三行开始合并,有以下的问题需要求助:1、请问如何修改为第二行开始合并?
2、由于需要合并的表格里有很多的公式,如何保证合并之后的数据是公式计算的结果呢?
Sub CombineSheetsCells()
Dim FileArr, Arr
Dim t%, i%, x%
Dim wb As Workbook
Dim MyRow, iRow
FileArr = Application.GetOpenFilename("Excel文件, *.xls*", 1, "请选择汇总文件", , MultiSelect:=True)
If IsArray(FileArr) Then
For t = 1 To 13
Worksheets(t).Rows("3:65536").ClearContents
For i = 1 To UBound(FileArr)
Set wb = GetObject(FileArr(i))
With wb
MyRow = Worksheets(t).Range("a65536").End(3).Row + 1
iRow = .Worksheets(Worksheets(t).Name).Range("a65536").End(3).Row
If iRow > 2 Then
Arr = .Sheets(Worksheets(t).Name).Range("a3").Resize(iRow - 2, 16)
Worksheets(t).Range("a" & MyRow).Resize(UBound(Arr, 1), 16) = Arr
Arr = ""
End If
End With
wb.Close False
Set wb = Nothing
Next
For x = 3 To MyRow
Worksheets(t).Range("a" & x) = x - 2
Next
Next
Else
MsgBox "未选择文件"
Exit Sub
End If
MsgBox "你一共汇总了" & UBound(FileArr) & "个文件!"
End Sub
|
|