Giúp em code tính tổng bằng VBA với ạ

  • Thread starter Thread starter nhnn1986
  • Ngày gửi Ngày gửi
Liên hệ QC

nhnn1986

Thành viên hoạt động
Tham gia
30/10/17
Bài viết
108
Được thích
19
Giới tính
Nam
EM có sheets("nguon") với data từ A4:Di => i là dòng cuối. Sheets(nguon") này được nối từ những file khác vào với mỗi file là 5 dòng (file 1 giá trị từ A4:D9, file 2 nối giá trị từ A10:D14 .v.v..)

Giờ em muốn tại sheets("ketqua").range(A4:D9), từng ô là tổng cộng của các giá trị theo sheets("nguồn") kia
Ví dụ sheets("ketqua").range(A4) là tổng của sheets(nguon).range(A4 + A10 + A14 ++...)
sheets("ketqua").range(A5) là tổng của sheets(nguon).range(A5 + A11 + A15 ++...)
sheets("ketqua").range(B4) là tổng của sheets(nguon).range(B4 + B10 + B14 ++...)

Giúp em tính tổng như trên bằng code VBA với ạ
 
EM có sheets("nguon") với data từ A4:Di => i là dòng cuối. Sheets(nguon") này được nối từ những file khác vào với mỗi file là 5 dòng (file 1 giá trị từ A4:D9, file 2 nối giá trị từ A10:D14 .v.v..)

Giờ em muốn tại sheets("ketqua").range(A4:D9), từng ô là tổng cộng của các giá trị theo sheets("nguồn") kia
Ví dụ sheets("ketqua").range(A4) là tổng của sheets(nguon).range(A4 + A10 + A14 ++...)
sheets("ketqua").range(A5) là tổng của sheets(nguon).range(A5 + A11 + A15 ++...)
sheets("ketqua").range(B4) là tổng của sheets(nguon).range(B4 + B10 + B14 ++...)

Giúp em tính tổng như trên bằng code VBA với ạ
Không có file, không hình dung nó như nào đâu bạn. Rồi có làm xong cũng không vừa ý bạn nữa, mất công
 
Upvote 0
Không có file, không hình dung nó như nào đâu bạn. Rồi có làm xong cũng không vừa ý bạn nữa, mất công
Em đính kèm file ạ, sheet("source") có nhiều "store" và biến động từ 10 đến 50 nhưng em chỉ kê 03 cho dễ hình dung, sheets ("result") em đặt công thức để có kết quả mong muốn tuy nhiên vì "store.." biến động nên em mong muốn có kết quả cộng từ VBA ạ
 

File đính kèm

Upvote 0
EM có sheets("nguon") với data từ A4:Di => i là dòng cuối. Sheets(nguon") này được nối từ những file khác vào với mỗi file là 5 dòng (file 1 giá trị từ A4:D9, file 2 nối giá trị từ A10:D14 .v.v..)
Giờ em muốn tại sheets("ketqua").range(A4:D9), từng ô là tổng cộng của các giá trị theo sheets("nguồn") kia
A4:D9 là gì vậy? A4: D9 (?)
Ở #1 bạn nêu là số liệu mỗi file 5 dòng, nhưng #3 trong file là mươi dòng; Cái nào đúng đây?
 
Upvote 0
@SA_DQ dạ file ở #3 là đúng ạ, lúc đầu #1 là em giả định ít dòng và range hơn, còn #3 mới là dữ liệu cần làm ấy ạ
 
Upvote 0
Bạn thử với Sub này, thay đổi Rws, CoL bằng các con số bạn muốn.
PHP:
Public Sub sGpe()
Const Rws As Long = 10, Col As Long = 11     '<------------------------'
Dim sArr(), dArr(), I As Long, J As Long, K As Long, R As Long
sArr = Sheets("source").Range("E3", Sheets("source").Range("E3").End(xlDown)).Resize(, Col).Value
R = UBound(sArr)
ReDim dArr(1 To Rws, 1 To Col)
For K = 1 To Rws
    For I = K To R Step Rws
        For J = 1 To Col
            dArr(K, J) = dArr(K, J) + sArr(I, J)
        Next J
    Next I
Next K
Sheets("result").Range("E3").Resize(Rws, Col) = dArr
End Sub
 
Upvote 0
Em đính kèm file ạ, sheet("source") có nhiều "store" và biến động từ 10 đến 50 nhưng em chỉ kê 03 cho dễ hình dung, sheets ("result") em đặt công thức để có kết quả mong muốn tuy nhiên vì "store.." biến động nên em mong muốn có kết quả cộng từ VBA ạ
Mỗi trường hợp store là cố định 12 dòng hay thế nào bạn
 
Upvote 0
@CHAOQUAY đúng rồi ạ, mà code của anh @Ba_te chạy được rồi ạ

@ Ba Tê Code chạy ngon rồi ạ, cảm ơn anh nhìu
 
Upvote 0
Chào anh @Ba Tê giúp em lần nữa ạ

Giờ em chạy thử 5 StoreA,B,C,D,E thì bắt đầu từ Store không có giá trị thì code ngừng luôn ở đó không cộng các Store sau nữa ạ hic
Ví dụ StoreA,B,C các Cell đều có giá trị thì cộng đúng, StoreD dòng 5 không có giá trị (ô trắng) thì code ngưng cộng từ đó và các Store sau cũng vậy. Bác xem lại code giùm em với ạ
 
Upvote 0
Chào anh @Ba Tê giúp em lần nữa ạ

Giờ em chạy thử 5 StoreA,B,C,D,E thì bắt đầu từ Store không có giá trị thì code ngừng luôn ở đó không cộng các Store sau nữa ạ hic
Ví dụ StoreA,B,C các Cell đều có giá trị thì cộng đúng, StoreD dòng 5 không có giá trị (ô trắng) thì code ngưng cộng từ đó và các Store sau cũng vậy. Bác xem lại code giùm em với ạ
Mỗi Store phải có đủ số dòng quy định như hằng Rws trong code.
Không thấy file nên chắc sẽ còn lỗi.
PHP:
Public Sub sGpe()
Const Rws As Long = 10, Col As Long = 11     '<------------------------'
Dim sArr(), dArr(), I As Long, J As Long, K As Long, R As Long
sArr = Sheets("source").Range("E3", Sheets("source").Range("E100000").End(xlUp)).Resize(, Col).Value
R = UBound(sArr)
ReDim dArr(1 To Rws, 1 To Col)
For K = 1 To Rws
    For I = K To R Step Rws
        For J = 1 To Col
            dArr(K, J) = dArr(K, J) + sArr(I, J)
        Next J
    Next I
Next K
Sheets("result").Range("E3").Resize(Rws, Col) = dArr
End Sub
 
Upvote 0
@Ba Tê
Mới trưa nay em nghĩ ra một cách là chèn đoạn code trước code của bác để check ô trống, nếu trống thì bằng 0 => sau đó code của bác sẽ cộng, đại loại như:
Mã:
For each cell in rng
if cell.value = "" then cell.value = 0
next

Và thấy code của bác đã cộng được hi hi
 
Upvote 0
Em đính kèm file ạ, sheet("source") có nhiều "store" và biến động từ 10 đến 50 nhưng em chỉ kê 03 cho dễ hình dung, sheets ("result") em đặt công thức để có kết quả mong muốn tuy nhiên vì "store.." biến động nên em mong muốn có kết quả cộng từ VBA ạ
Thử một code tà đạo, với điều kiện trước khi nhấn nút thì phải Sort cột A để sắp xếp những thứ giống nhau vào một ("store.." biến động không cần lo có bao nhiêu dòng thì kệ nó).
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Thử một code tà đạo, với điều kiện trước khi nhấn nút thì phải Sort cột A để sắp xếp những thứ giống nhau vào một ("store.." biến động không cần lo có bao nhiêu dòng thì kệ nó).
Anh hiểu sai ý tác giả rồi.
Kết quả dòng 1 phải là tổng của dòng 1 tất cả các store.
Kết quả dòng 2 phải là tổng của dòng 2 tất cả các store.
........................................... chứ không phải tính tổng của từng store.
Như vậy tất cả các store phải có số dòng bằng nhau (kể cả dòng trống xen giữa).
 
Upvote 0
Anh hiểu sai ý tác giả rồi.
Kết quả dòng 1 phải là tổng của dòng 1 tất cả các store.
Kết quả dòng 2 phải là tổng của dòng 2 tất cả các store.
........................................... chứ không phải tính tổng của từng store.
Như vậy tất cả các store phải có số dòng bằng nhau (kể cả dòng trống xen giữa).
Chắc do tải File và đọc nhằm nội dung bài 3 (vì "store.." biến động nên em mong muốn có kết quả cộng).
 
Upvote 0
Em rất thích forum mình nhiệt tình ghê, có lẽ một phần đam mê nên sẵn sàng "vọc và thử nghiệm" hi hi.

Ý của em như Mr @Ba Tê đã nói đó là cũng code đúng rồi ạ, may quá lại nhờ Mr @be09 "hiểu nhầm" nên có đoạn code khá hay để em áp dụng vào mục đích cộng số liệu khác hi hi
 
Upvote 0
Web KT

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

Back
Top Bottom