Xin chào anh chị và các bạn,
em mới châp chững tìm hiểu về VBA. Và rất cảm ơn Tuhocvba.net là 1 nơi cho người mới như em tìm hiểu về VBA tiếp cận cách dễ dàng và nhanh chóng hơn.
em có 1 bài toán mong anh chị cho em xin hướng đi
Tình huống:
em có nhiều workbooks, trong workbooks có nhiều worksheets, trong worksheets có 1 bảng có cùng kích cỡ cũng như địa chỉ như hình minh họa bên dưới
=> làm thế nào để tỉnh tổng các bảng đó vào 1 file duy nhất có tên "Tổng hợp".
em code được tới đoạn cộng các mảng đó với nhau thì ko được, cụ thể:
1. Em dùng mảng kiểu Array_Tong=Array_Tong+Array(i) thì không được. Tại sao vậy?
2. Em dùng kiểu Range_Tong=Range_Tong+Range(i) cũng không được. Tại sao?
Nếu tới đây cho 2 vòng lặp qua mảng thì cũng được nhưng em nghĩ có cách gì đó nhanh hơn
em xin cảm ơn
em mới châp chững tìm hiểu về VBA. Và rất cảm ơn Tuhocvba.net là 1 nơi cho người mới như em tìm hiểu về VBA tiếp cận cách dễ dàng và nhanh chóng hơn.
em có 1 bài toán mong anh chị cho em xin hướng đi
Tình huống:
em có nhiều workbooks, trong workbooks có nhiều worksheets, trong worksheets có 1 bảng có cùng kích cỡ cũng như địa chỉ như hình minh họa bên dưới
=> làm thế nào để tỉnh tổng các bảng đó vào 1 file duy nhất có tên "Tổng hợp".
em code được tới đoạn cộng các mảng đó với nhau thì ko được, cụ thể:
1. Em dùng mảng kiểu Array_Tong=Array_Tong+Array(i) thì không được. Tại sao vậy?
2. Em dùng kiểu Range_Tong=Range_Tong+Range(i) cũng không được. Tại sao?
Nếu tới đây cho 2 vòng lặp qua mảng thì cũng được nhưng em nghĩ có cách gì đó nhanh hơn
Mã:
Sub Tonghop()
Dim wbOutput As Workbook, wbinput As Workbook
Dim SelectFiles As Variant
Dim FileNum As Integer, sheetNumInput As Integer, sheetNumOutput As Integer, i As Integer, j As Integer
Dim ArrInput As Variant, ArrOutput As Variant
Application.DisplayAlerts = False
Application.ScreenUpdating = False
Set wbOutput = ThisWorkbook
SelectFiles = Application.GetOpenFilename(filefilter:="Excel file (*.*),*.xlsx*", MultiSelect:=True)
For FileNum = 1 To UBound(SelectFiles)
Set wbinput = Workbooks.Open(SelectFiles(FileNum))
sheetNumInput = wbinput.Worksheets.Count
sheetNumOutput = wbOutput.Worksheets.Count
For i = 1 To sheetNumInput
For j = 1 To sheetNumOutput
If wbinput.Sheets(j).Name = wbOutput.Sheets(i).Name Then
'???
End If
Next j
Next i
wbinput.Close
Next
Application.ScreenUpdating = True
Application.DisplayAlerts = True
MsgBox "Done!"
End Sub
Bạn cần đăng nhập để thấy hình ảnh