Tính tổng giá trị trong bảng tương ứng từ các File được chọn trong thư mục (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

thanhduan2407

Thành viên mới
Tham gia
22/9/08
Bài viết
15
Được thích
2
Chào các bác trên diễn đàn GPE!
Đêm hôm lần mò với những kiến thức về VBA for Excel mà em chưa làm được, sốt ruột và tìm mọi cách mà em vẫn chưa có lời giải đáp…..đành nhờ đến các bác chỉ giáo cho em vài đường cơ bản để em tự học và nghiên cứu.
Giả sử ta có rất nhiều file Excel nằm trong một thư mục, các file Excel đó đều có định dạng giống hệt nhau với những giá trị trong bảng là khác nhau.
Nhờ các bác giúp em viết Code sao cho khi chạy chương trình nó sẽ hỏi chọn file (hoặc mình chỉ cho nó đường dẫn luôn cũng được). Sau khi chọn xong thì nó sẽ tính tổng giá trị các ô từ các file Excel khác nhau đó (ô kết quả = tổng các ô tương ứng từ các file, ví dụ: A1 = Tổng giá trị A1 của các file), nếu ô không phải là số thì bỏ trống (ví dụ: Chữ thì bỏ trống). Nếu có thể thêm sheet nào cộng sheet ấy (sheet 1 thì cộng các giá trị từ sheet 1, sheet 2 thì cộng giá trị từ sheet 2 ….) thì các bác giúp em bác nhé (trong file đính kèm thì dữ liệu chỉ nằm trong sheet 1, sheet 2 em chưa cho giá trị vào)
Link:
http://www.mediafire.com/?5fl8o64qf2f22lv
Em chân thành cám ơn các bác nhiều.
Mong rằng một ngày nào đó em lại có thể viết cống hiến cho diễn đàn nhiều bài toán hay.
Chúc các bác ngủ ngon.
 
Em làm được rồi các bác nhé! Tuy nhiên mới hoàn thành thủ tục duyệt qua sheet 1 thôi chứ chưa tính cho từng sheet.
Em gửi lên các bác check giúp em nhé.
Sub Tonghop()
Dim iR As Long
Dim jC As Long
Dim k As Long
Dim Sohang As Long
Dim Socot As Long
Dim Col As Long
Dim sh As Worksheet
Dim Arr
Dim Res(1 To 65536, 1 To 10)
Dim bookList As Workbook
Dim mergeObj As Object, dirObj As Object, filesObj As Object, everyObj As Object
Application.ScreenUpdating = False
Set mergeObj = CreateObject("Scripting.FileSystemObject")
Set dirObj = mergeObj.Getfolder("D:\File Excel")
Set filesObj = dirObj.Files
For Each everyObj In filesObj
Set bookList = Workbooks.Open(everyObj)
Arr = Range("A1:J" & Range("A65536").End(xlUp).Row)
Sohang = UBound(Arr, 1)
Socot = UBound(Arr, 2)
For i = 1 To Sohang
For j = 1 To Socot
Res(i, j) = Res(i, j) + Arr(i, j)
Next
Next
bookList.Close
Next
Sheet1.Range("A1").Resize(10, 10) = Res
End Sub
 
Upvote 0

Bài viết mới nhất

Back
Top Bottom