Hàm Sum Trong Vba Excel
Có thể bạn quan tâm
- Trang chủ Có gì mới Hoạt động gần nhất Tác giả
- Diễn đàn Tìm bài viết mới Tìm theo chuyên mục
- Video
Video về Excel Video về tin học khác Tin tức về tin học chung - Thông tin mới Featured content Tìm bài mới Tài Nguyên Mới Hoạt động gần nhất
- Tài nguyên Đánh giá mới nhất Tìm tài nguyên
- Đóng góp
Tìm kiếm
Mọi nơi Đề tài Diễn đàn này Đề tài này Chỉ tìm trong tiêu đề Note Tìm kiếm Tìm nâng cao…- Tìm bài viết mới
- Tìm theo chuyên mục
Follow along with the video below to see how to install our site as a web app on your home screen.
Note: This feature may not be available in some browsers.
- Khách ơi! GPE thông tin đến bạn ấn phẩm "lập trình VBA trong Excel": - Phần cơ bản - Phần Nâng Cao - VBA trong Excel - Cải thiện và tăng tốc
- Trang chủ
- Diễn đàn
- Lập Trình với Excel
- Thread starter Thread starter huynhphuong thcspt
- Ngày gửi Ngày gửi 5/7/21
Người dùng đang xem chủ đề này
Đang trực tuyến: 2 (Thành viên: 0, Khách: 2)huynhphuong thcspt
Thành viên mới 
Tham gia 31/8/18 Bài viết 45 Được thích 10 1/ Chào các bạn trên diễn đàn ! Mình có bảng báo cáo thống kê đối tượng khuyết tật như file đính kèm. Tại dòng 16 tính tổng theo cột tương ứng các dạng khuyết tật. Viết code như sau: Rich (BB code): Sao chép. Sub Tong_KT() With Sheets("TH-KT") .Range("C16").Value = WorksheetFunction.Sum(.Range("C7:C15").Value) .Range("D16").Value = WorksheetFunction.Sum(.Range("D7:D15").Value) .Range("E16").Value = WorksheetFunction.Sum(.Range("E7:E15").Value) .Range("F16").Value = WorksheetFunction.Sum(.Range("F7:F15").Value) .Range("G16").Value = WorksheetFunction.Sum(.Range("G7:G15").Value) .Range("H16").Value = WorksheetFunction.Sum(.Range("H7:H15").Value) .Range("I16").Value = WorksheetFunction.Sum(.Range("I7:I15").Value) .Range("J16").Value = WorksheetFunction.Sum(.Range("J7:J15").Value) .Range("K16").Value = WorksheetFunction.Sum(.Range("K7:K15").Value) .Range("L16").Value = WorksheetFunction.Sum(.Range("L7:L15").Value) .Range("M16").Value = WorksheetFunction.Sum(.Range("M7:M15").Value) .Range("M16").NumberFormat = "0.00 %" End With End Sub 2/ Các bạn giúp dùm mình (hướng dẫn) cách viết code trên ngắn gọn lại. Xin cảm ơn. File đính kèm
- TH-KT.xlsm TH-KT.xlsm 22.1 KB · Đọc: 38
Maika8008
Thành viên gạo cội



Tham gia 12/6/20 Bài viết 4,852 Được thích 5,839 Donate (Momo)
Giới tính Nam Viết như sau: Rich (BB code): Sao chép. Sub Tong_KT_New() Dim c& With Sheets("TH-KT") For c = 3 To 13 .Cells(16, c) = WorksheetFunction.Sum(.Range(.Cells(7, c), .Cells(15, c))) Next .Range("M16").NumberFormat = "0.00 %" End With End Sub Upvote 0 V VetMini
Đang đi tìm hòn đá
Tham gia 21/12/12 Bài viết 17,867 Được thích 24,790 Nghề nghiệp Thầy bói bài ta For each c in Sheets("TH-KT").Range("C16:M16") c.Value = WorksheetFunction.Sum(c.Offset(-9,0).Resize(9,)) Next c Sheets("TH-KT").Range("M16").NumberFormat = "0.00 %" Upvote 0SA_DQ
/(hông là gì!
Thành viên danh dự Tham gia 8/6/06 Bài viết 14,779 Được thích 23,240 Nghề nghiệp U80 Đây là 1 cách, nếu bạn cho là gọn: PHP: Sao chép. Sub Tong_KT() Dim WF As Object Dim Rws As Long, Col As Integer Set WF = Application.WorksheetFunction Rws = [B65500].End(xlUp).Row With Sheets("TH-KT") For Col = 3 To 12 .Cells(16, Col).Value = WF.Sum(.Cells(7, Col).Resize(Rws - 7)) Next Col End With End Sub Upvote 0huynhphuong thcspt
Thành viên mới 
Tham gia 31/8/18 Bài viết 45 Được thích 10 Maika8008 đã viết: Viết như sau: Rich (BB code): Sao chép. Sub Tong_KT_New() Dim c& With Sheets("TH-KT") For c = 3 To 13 .Cells(16, c) = WorksheetFunction.Sum(.Range(.Cells(7, c), .Cells(15, c))) Next .Range("M16").NumberFormat = "0.00 %" End With End Sub Nhấp chuột vào đây để mở rộng...1. Gửi lời cảm ơn Maika8008 và các bạn trên điễn đàn đã hỗ trợ mình ở bài #1. Kết quả chương trình chạy tốt. 2. Bảng báo cáo thống kê đối tượng khuyết tật như file đính kèm (tổng hợp từ sheet(DATA). Viết code như sau: Rich (BB code): Sao chép. Sub TK_TH_KT() Dim lr As Long, dol As Long Sheets("TH-KT").Select With Sheets("DATA") lr = .Cells(Rows.Count, 1).End(xlUp).Row For dol = 7 To 15 Cells(dol, 4).Value = WorksheetFunction.CountIfs(.Range("G5:G" & lr), Cells(dol, 1), .Range("AJ5:AJ" & lr), "X") 'KHUYET TAT VAN DONG Cells(dol, 5).Value = WorksheetFunction.CountIfs(.Range("G5:G" & lr), Cells(dol, 1), .Range("AK5:AK" & lr), "X") 'KHUYET TAT NGHE, NOI Cells(dol, 6).Value = WorksheetFunction.CountIfs(.Range("G5:G" & lr), Cells(dol, 1), .Range("AL5:AL" & lr), "X") 'KHUYET TAT NHIN Cells(dol, 7).Value = WorksheetFunction.CountIfs(.Range("G5:G" & lr), Cells(dol, 1), .Range("AM5:AM" & lr), "X") 'KHUYET TAT THAN KINH Cells(dol, 8).Value = WorksheetFunction.CountIfs(.Range("G5:G" & lr), Cells(dol, 1), .Range("AN5:AN" & lr), "X") 'KHUYET TAT TRI TUE Cells(dol, 9).Value = WorksheetFunction.CountIfs(.Range("G5:G" & lr), Cells(dol, 1), .Range("AP5:AP" & lr), "X") 'KHUYET TAT TU KY Cells(dol, 10).Value = WorksheetFunction.CountIfs(.Range("G5:G" & lr), Cells(dol, 1), .Range("AO5:AO" & lr), "X") 'KHUYET HOC TAP Cells(dol, 11).Value = WorksheetFunction.CountIfs(.Range("G5:G" & lr), Cells(dol, 1), .Range("AQ5:AQ" & lr), "X") 'KHUYET TAT KHAC Cells(dol, 12).Value = WorksheetFunction.CountIfs(.Range("G5:G" & lr), Cells(dol, 1), .Range("AS5:AS" & lr), "X") 'KHUYET TAT TIEP CAN GIAO DUC Next dol End With Dim d&, c& With Sheets("TH-KT") For d = 7 To 15 .Cells(d, 3) = WorksheetFunction.Sum(.Range(.Cells(d, 4), .Cells(d, 11))) If .Cells(d, 3).Value = 0 Then .Cells(d, 13).Value = "0.00 %" Else .Cells(d, 13).Value = (.Cells(d, 12)) / (.Cells(d, 3)) .Cells(d, 13).NumberFormat = "0.00 %" End If Next For c = 3 To 13 .Cells(16, c) = WorksheetFunction.Sum(.Range(.Cells(7, c), .Cells(15, c))) Next .Range("M16").NumberFormat = "0.00 %" End With End Sub 3. Nhờ bạn chỉ dẫn thêm cách viết gọn lại đoạn code ( thống kê các dạng khuyết tật theo độ tuổi sheets(TH-KT).range(D7:L15) ). Cảm ơn ! Viết gọn lại code sau: With Sheets("DATA") lr = .Cells(Rows.Count, 1).End(xlUp).Row For dol = 7 To 15 ................................ Next dol End With
File đính kèm
- TH-KT.xlsm TH-KT.xlsm 3.1 MB · Đọc: 20
VetMini
Đang đi tìm hòn đá
Tham gia 21/12/12 Bài viết 17,867 Được thích 24,790 Nghề nghiệp Thầy bói bài tahuynhphuong thcspt đã viết: ...3. Nhờ bạn chỉ dẫn thêm cách viết gọn lại đoạn code ( thống kê các dạng khuyết tật theo độ tuổi sheets(TH-... Nhấp chuột vào đây để mở rộng...Nhờ chỉ dẫn hay nhờ làm giùm? Cách: 1. nhìn kỹ lại xem các ranges trong cái đám rừng code ấy nó liên hệ với nhauy thế nào. 2. phân làm 1 hay vài vùng ranges. 3. dựng vòng lặp chuyển qua các dòng, cột, hay từng cells 4. những ranges/cells nào phải lặp lại nhiều lần thì cho nó vào biến tuốt (không làm code gọn hơn, nhưng giúp code chạy hiệu quả hơn) Upvote 0
Maika8008
Thành viên gạo cội



Tham gia 12/6/20 Bài viết 4,852 Được thích 5,839 Donate (Momo)
Giới tính Nam huynhphuong thcspt đã viết: 1. Gửi lời cảm ơn Maika8008 và các bạn trên điễn đàn đã hỗ trợ mình ở bài #1. Kết quả chương trình chạy tốt. 2. Bảng báo cáo thống kê đối tượng khuyết tật như file đính kèm (tổng hợp từ sheet(DATA). Viết code như sau: Rich (BB code): Sao chép. Sub TK_TH_KT() Dim lr As Long, dol As Long Sheets("TH-KT").Select With Sheets("DATA") lr = .Cells(Rows.Count, 1).End(xlUp).Row For dol = 7 To 15 Cells(dol, 4).Value = WorksheetFunction.CountIfs(.Range("G5:G" & lr), Cells(dol, 1), .Range("AJ5:AJ" & lr), "X") 'KHUYET TAT VAN DONG Cells(dol, 5).Value = WorksheetFunction.CountIfs(.Range("G5:G" & lr), Cells(dol, 1), .Range("AK5:AK" & lr), "X") 'KHUYET TAT NGHE, NOI Cells(dol, 6).Value = WorksheetFunction.CountIfs(.Range("G5:G" & lr), Cells(dol, 1), .Range("AL5:AL" & lr), "X") 'KHUYET TAT NHIN Cells(dol, 7).Value = WorksheetFunction.CountIfs(.Range("G5:G" & lr), Cells(dol, 1), .Range("AM5:AM" & lr), "X") 'KHUYET TAT THAN KINH Cells(dol, 8).Value = WorksheetFunction.CountIfs(.Range("G5:G" & lr), Cells(dol, 1), .Range("AN5:AN" & lr), "X") 'KHUYET TAT TRI TUE Cells(dol, 9).Value = WorksheetFunction.CountIfs(.Range("G5:G" & lr), Cells(dol, 1), .Range("AP5:AP" & lr), "X") 'KHUYET TAT TU KY Cells(dol, 10).Value = WorksheetFunction.CountIfs(.Range("G5:G" & lr), Cells(dol, 1), .Range("AO5:AO" & lr), "X") 'KHUYET HOC TAP Cells(dol, 11).Value = WorksheetFunction.CountIfs(.Range("G5:G" & lr), Cells(dol, 1), .Range("AQ5:AQ" & lr), "X") 'KHUYET TAT KHAC Cells(dol, 12).Value = WorksheetFunction.CountIfs(.Range("G5:G" & lr), Cells(dol, 1), .Range("AS5:AS" & lr), "X") 'KHUYET TAT TIEP CAN GIAO DUC Next dol End With Dim d&, c& With Sheets("TH-KT") For d = 7 To 15 .Cells(d, 3) = WorksheetFunction.Sum(.Range(.Cells(d, 4), .Cells(d, 11))) If .Cells(d, 3).Value = 0 Then .Cells(d, 13).Value = "0.00 %" Else .Cells(d, 13).Value = (.Cells(d, 12)) / (.Cells(d, 3)) .Cells(d, 13).NumberFormat = "0.00 %" End If Next For c = 3 To 13 .Cells(16, c) = WorksheetFunction.Sum(.Range(.Cells(7, c), .Cells(15, c))) Next .Range("M16").NumberFormat = "0.00 %" End With End Sub 3. Nhờ bạn chỉ dẫn thêm cách viết gọn lại đoạn code ( thống kê các dạng khuyết tật theo độ tuổi sheets(TH-KT).range(D7:L15) ). Cảm ơn ! Viết gọn lại code sau: With Sheets("DATA") lr = .Cells(Rows.Count, 1).End(xlUp).Row For dol = 7 To 15 ................................ Next dol End With Nhấp chuột vào đây để mở rộng...Hướng dẫn: CÁCH 1: 1/ Theo bác Vetmini bạn cần khai báo 1 biến Range và đưa vùng .Range("G5:G" & lr) vào biến đó (nhìn thấy đỡ rối mắt hơn nhiều) 2/ 5 dòng đầu bạn lợi dụng các cột (cả đích lẫn nguồn) tăng +1 để đưa chúng vào 1 vòng lặp (các cột nguồn từ AO đến AS sắp lộn xộn so với đích nên buộc phải để nguyên) CÁCH 2: 1/ Đưa các tham số về số cột đích và chuỗi cột nguồn vào 2 biến mảng: arrC = Array(4, 5, 6, 7, 8, 9, 10, 11, 12) arrSRng = Array("AJ5:AJ", "AK5:AK", "AL5:AL", "AM5:AM", "AN5:AN", "AP5:AP", "AO5:AO", "AQ5:AQ", "AS5:AS") 2/ Lấy chỉ số của 2 mảng đó đưa vào vòng lặp bên trong vòng lặp For dol For c = 0 To UBound(arrC) Cells(dol, arrC(c)).Value = WorksheetFunction.CountIfs(.Range("G5:G" & lr), Cells(dol, 1), .Range(arrSRng(c) & lr), "X") Next c Cách 2 ít dòng hơn cách 1 Upvote 0 V
VetMini
Đang đi tìm hòn đá
Tham gia 21/12/12 Bài viết 17,867 Được thích 24,790 Nghề nghiệp Thầy bói bài taMaika8008 đã viết: For c = 0 To UBound(arrC) Cells(dol, arrC(c)).Value = WorksheetFunction.CountIfs(.Range("G5:G" & lr), Cells(dol, 1), .Range(arrSRng(c) & lr), "X") Next c Nhấp chuột vào đây để mở rộng...Cái [địa chỉ] range tôi bôi đỏ ở trên nó là một range cố định, nhưng nó được tính đi tính lại 9 lần. Có vài tị mkhacs cũng vậy. Set rg = .Range("G5:G" & lr) cBound = UBound(arrC) For dol = ... ... dolVal = Cells(dol, 1).Value For c = 0 To cBound Cells(dol, arrC(c)).Value = WorksheetFunction.CountIfs(rg, dolVal, .Range(arrSRng(c) & lr), "X") 9 lần là con số nhỏ, không quan trọng. Tôi chỉ nói chuyện lý thuyết về những mẹo được dùng để tăng hiệu quả lúc run time. Upvote 0
ptm0412
Bad Excel Member
Thành viên BQT Administrator Tham gia 4/11/07 Bài viết 14,812 Được thích 37,526 Donate (Momo)
Giới tính Nam Nghề nghiệp Consultant Rich (BB code): Sao chép. With Sheets("DATA") lr = .Cells(Rows.Count, 1).End(xlUp).Row For dol = 7 To 15 Cells(dol, 4).Value = WorksheetFunction.CountIfs(.Range("G5:G" & lr), Cells(dol, 1), .Range("AJ5:AJ" & lr), "X") 'KHUYET TAT VAN DONG Cells(dol, 5).Value = WorksheetFunction.CountIfs(.Range("G5:G" & lr), Cells(dol, 1), .Range("AK5:AK" & lr), "X") 'KHUYET TAT NGHE, NOI ..... Cells(dol, 12).Value = WorksheetFunction.CountIfs(.Range("G5:G" & lr), Cells(dol, 1), .Range("AS5:AS" & lr), "X") 'KHUYET TAT TIEP CAN GIAO DUC Next dol End With Sửa như sau (này thì hướng dẫn) Mã: Sao chép. For dol ... For cot = 4 to 12 Cells(dol, cot).Value = ... 'Một dòng duy nhất Next Next Ghi chú: - Muốn 1 dòng code duy nhất thì phải quy đổi những AJ, AK, AL, ... thành column (số) và cộng với biến cot một số phù hợp. - Đổi thứ tự cột kết quả cho giống thứ tự dữ liệu, hoặc ngược lại Lần chỉnh sửa cuối: 7/7/21 Upvote 0 huynhphuong thcspt
Thành viên mới 
Tham gia 31/8/18 Bài viết 45 Được thích 10 Maika8008 đã viết: Hướng dẫn: CÁCH 1: 1/ Theo bác Vetmini bạn cần khai báo 1 biến Range và đưa vùng .Range("G5:G" & lr) vào biến đó (nhìn thấy đỡ rối mắt hơn nhiều) 2/ 5 dòng đầu bạn lợi dụng các cột (cả đích lẫn nguồn) tăng +1 để đưa chúng vào 1 vòng lặp (các cột nguồn từ AO đến AS sắp lộn xộn so với đích nên buộc phải để nguyên) CÁCH 2: 1/ Đưa các tham số về số cột đích và chuỗi cột nguồn vào 2 biến mảng: arrC = Array(4, 5, 6, 7, 8, 9, 10, 11, 12) arrSRng = Array("AJ5:AJ", "AK5:AK", "AL5:AL", "AM5:AM", "AN5:AN", "AP5:AP", "AO5:AO", "AQ5:AQ", "AS5:AS") 2/ Lấy chỉ số của 2 mảng đó đưa vào vòng lặp bên trong vòng lặp For dol For c = 0 To UBound(arrC) Cells(dol, arrC(c)).Value = WorksheetFunction.CountIfs(.Range("G5:G" & lr), Cells(dol, 1), .Range(arrSRng(c) & lr), "X") Next c Cách 2 ít dòng hơn cách 1 Nhấp chuột vào đây để mở rộng...1/ Mình gửi lời cảm ơn Maika8008 và VietMini đã hỗ trợ và hướng dẫn viết lại code ở bài #5. 2/ Báo cáo bạn chương trình chạy tốt, nhanh gọn và khớp dữ liệu. 3/ Kết quả chương trình như sau: a. Theo hướng dẫn của Maika8008 mình viết như sau: Rich (BB code): Sao chép. Sub TK_TH_KT() Dim lr As Long, dol As Long With Sheets("DATA") lr = .Cells(Rows.Count, 1).End(xlUp).Row For dol = 7 To 15 arrC = Array(4, 5, 6, 7, 8, 9, 10, 11, 12) arrSRng = Array("AJ5:AJ", "AK5:AK", "AL5:AL", "AM5:AM", "AN5:AN", "AP5:AP", "AO5:AO", "AQ5:AQ", "AS5:AS") For c = 0 To UBound(arrC) Cells(dol, arrC(c)).Value = WorksheetFunction.CountIfs(.Range("G5:G" & lr), Cells(dol, 1), .Range(arrSRng(c) & lr), "X") Next c Next dol End With End Sub b. Theo hướng dẫn của VietMini mình viết như sau: Rich (BB code): Sao chép. Sub TK_TH_KT() Dim lr As Long, dol As Long With Sheets("DATA") lr = .Cells(Rows.Count, 1).End(xlUp).Row For dol = 7 To 15 Set rg = .Range("G5:G" & lr) arrC = Array(4, 5, 6, 7, 8, 9, 10, 11, 12) arrSRng = Array("AJ5:AJ", "AK5:AK", "AL5:AL", "AM5:AM", "AN5:AN", "AP5:AP", "AO5:AO", "AQ5:AQ", "AS5:AS") cBound = UBound(arrC) dolVal = Cells(dol, 1).Value For c = 0 To cBound Cells(dol, arrC(c)).Value = WorksheetFunction.CountIfs(rg, dolVal, .Range(arrSRng(c) & lr), "X") Next c Next dol End With End Sub 4/ Chúc 2 bạn An lành và Hạnh phúc ! Chào. Upvote 0
Maika8008
Thành viên gạo cội



Tham gia 12/6/20 Bài viết 4,852 Được thích 5,839 Donate (Momo)
Giới tính Nam huynhphuong thcspt đã viết: 1/ Mình gửi lời cảm ơn Maika8008 và VietMini đã hỗ trợ và hướng dẫn viết lại code ở bài #5. 2/ Báo cáo bạn chương trình chạy tốt, nhanh gọn và khớp dữ liệu. 3/ Kết quả chương trình như sau: a. Theo hướng dẫn của Maika8008 mình viết như sau: Rich (BB code): Sao chép. Sub TK_TH_KT() Dim lr As Long, dol As Long With Sheets("DATA") lr = .Cells(Rows.Count, 1).End(xlUp).Row For dol = 7 To 15 arrC = Array(4, 5, 6, 7, 8, 9, 10, 11, 12) arrSRng = Array("AJ5:AJ", "AK5:AK", "AL5:AL", "AM5:AM", "AN5:AN", "AP5:AP", "AO5:AO", "AQ5:AQ", "AS5:AS") For c = 0 To UBound(arrC) Cells(dol, arrC(c)).Value = WorksheetFunction.CountIfs(.Range("G5:G" & lr), Cells(dol, 1), .Range(arrSRng(c) & lr), "X") Next c Next dol End With End Sub b. Theo hướng dẫn của VietMini mình viết như sau: Rich (BB code): Sao chép. Sub TK_TH_KT() Dim lr As Long, dol As Long With Sheets("DATA") lr = .Cells(Rows.Count, 1).End(xlUp).Row For dol = 7 To 15 Set rg = .Range("G5:G" & lr) arrC = Array(4, 5, 6, 7, 8, 9, 10, 11, 12) arrSRng = Array("AJ5:AJ", "AK5:AK", "AL5:AL", "AM5:AM", "AN5:AN", "AP5:AP", "AO5:AO", "AQ5:AQ", "AS5:AS") cBound = UBound(arrC) dolVal = Cells(dol, 1).Value For c = 0 To cBound Cells(dol, arrC(c)).Value = WorksheetFunction.CountIfs(rg, dolVal, .Range(arrSRng(c) & lr), "X") Next c Next dol End With End Sub 4/ Chúc 2 bạn An lành và Hạnh phúc ! Chào. Nhấp chuột vào đây để mở rộng...Bạn đưa cụm .Range("G5:G" & lw) vào 1 biến Range luôn đi (như bài #8 có nói đó) Upvote 0
huynhphuong thcspt
Thành viên mới 
Tham gia 31/8/18 Bài viết 45 Được thích 10 Maika8008 đã viết: Bạn đưa cụm .Range("G5:G" & lw) vào 1 biến Range luôn đi (như bài #8 có nói đó) Nhấp chuột vào đây để mở rộng...1/ Chào bạn Maika8008! Mình có 1 Sheets như file đính kèm, tại các ô từ dòng 79 của cột 3 đến cột 19 ( Cells( 79, 3 ), Cells (79, 4 ), .... Cells( 79, 19 ) tính tổng theo cột tương ứng tại dòng dữ liệu ( dòng 14, 18, 28, 33, 41, 52, 78) màu hồng. Mình viết code như sau: a. Cách 1: Chương trình chạy tốt, tính khớp dữ liệu theo dòng 14, 18, 28, 33, 41, 52, 78 Rich (BB code): Sao chép. Sub TONG_C1() For col = 3 To 19 arrD = Array(14, 18, 28, 33, 41, 52, 78) Cells(79, col).Value = WorksheetFunction.Sum(Cells(arrD(0), col), Cells(arrD(1), col), Cells(arrD(2), col), Cells(arrD(3), col), Cells(arrD(4), col), Cells(arrD(5), col), Cells(arrD(6), col)) ' tinh o dong 79 theo cot tuong ung Next col End Sub b. Cách 2: Chương trình chỉ lấy dữ liệu ở dòng 78 để tính Rich (BB code): Sao chép. Sub TONG_C2() For col = 3 To 19 arrD = Array(14, 18, 28, 33, 41, 52, 78) For c = 0 To UBound(arrD) Cells(79, col).Value = WorksheetFunction.Sum(Cells(arrD(c), col)) Next c Next col End Sub 2/ Rất mong bạn giúp giùm mình cách viết code ở cách 2, để chương trình chạy đúng khớp dữ liệu. Xin cảm ơn !
File đính kèm
- TINH TONG.xlsm TINH TONG.xlsm 43.3 KB · Đọc: 11
Maika8008
Thành viên gạo cội



Tham gia 12/6/20 Bài viết 4,852 Được thích 5,839 Donate (Momo)
Giới tính Nam huynhphuong thcspt đã viết: 1/ Chào bạn Maika8008! Mình có 1 Sheets như file đính kèm, tại các ô từ dòng 79 của cột 3 đến cột 19 ( Cells( 79, 3 ), Cells (79, 4 ), .... Cells( 79, 19 ) tính tổng theo cột tương ứng tại dòng dữ liệu ( dòng 14, 18, 28, 33, 41, 52, 78) màu hồng. Mình viết code như sau: a. Cách 1: Chương trình chạy tốt, tính khớp dữ liệu theo dòng 14, 18, 28, 33, 41, 52, 78 Rich (BB code): Sao chép. Sub TONG_C1() For col = 3 To 19 arrD = Array(14, 18, 28, 33, 41, 52, 78) Cells(79, col).Value = WorksheetFunction.Sum(Cells(arrD(0), col), Cells(arrD(1), col), Cells(arrD(2), col), Cells(arrD(3), col), Cells(arrD(4), col), Cells(arrD(5), col), Cells(arrD(6), col)) ' tinh o dong 79 theo cot tuong ung Next col End Sub b. Cách 2: Chương trình chỉ lấy dữ liệu ở dòng 78 để tính Rich (BB code): Sao chép. Sub TONG_C2() For col = 3 To 19 arrD = Array(14, 18, 28, 33, 41, 52, 78) For c = 0 To UBound(arrD) Cells(79, col).Value = WorksheetFunction.Sum(Cells(arrD(c), col)) Next c Next col End Sub 2/ Rất mong bạn giúp giùm mình cách viết code ở cách 2, để chương trình chạy đúng khớp dữ liệu. Xin cảm ơn ! Nhấp chuột vào đây để mở rộng...Tôi có việc gia đình, nhiều ngày nữa mới rảnh được. Bạn thông cảm! Upvote 0
ptm0412
Bad Excel Member
Thành viên BQT Administrator Tham gia 4/11/07 Bài viết 14,812 Được thích 37,526 Donate (Momo)
Giới tính Nam Nghề nghiệp Consultant huynhphuong thcspt đã viết: b. Cách 2: Chương trình chỉ lấy dữ liệu ở dòng 78 để tính Rich (BB code): Sao chép. For c = 0 To UBound(arrD) Cells(79, col).Value = WorksheetFunction.Sum(Cells(arrD(c), col)) Debug.Print Cells(79, col).Value, Cells(arrD(c), col).Value Next c ... Nhấp chuột vào đây để mở rộng...Bạn thêm câu lệnh đỏ và chạy thử từng vòng lặp một bằng cách nhấn F8, rồi xem dưới Immediate sẽ rõ. Đơn giản vì mỗi lần tính Sum chỉ tính Sum 1 ô, không tính Sum cả mảng Như vầy thì được: Mã: Sao chép. Cells(79, col).Value = Cells(79, col) + Cells(arrD(c), col) Upvote 0
huynhphuong thcspt
Thành viên mới 
Tham gia 31/8/18 Bài viết 45 Được thích 10 ptm0412 đã viết: Bạn thêm câu lệnh đỏ và chạy thử từng vòng lặp một bằng cách nhấn F8, rồi xem dưới Immediate sẽ rõ. Đơn giản vì mỗi lần tính Sum chỉ tính Sum 1 ô, không tính Sum cả mảng Như vầy thì được: Mã: Sao chép. Cells(79, col).Value = Cells(79, col) + Cells(arrD(c), col) Nhấp chuột vào đây để mở rộng...Cảm ơn bạn nhiều! Chương trình chạy đúng khớp với dữ liệu tại các dòng theo yêu cầu. Chúc sức khỏe, chào bạn. Upvote 0 Bạn phải đăng nhập hoặc đăng ký để trả lời bài viết tại đây.
Bài viết mới nhất
L [Nhờ giúp đỡ] Tìm khoảng thời gian bị gối, hoặc trùng nhau- Lá chanh
- Hôm qua, lúc 00:53
- Hàm và công thức Excel
- SA_DQ
- 3/11/25
- Chia sẻ
- Question Question
- duongnhuxuyen
- 12/12/25
- Lập Trình với Excel
- PhanTuHuong
- 10/12/25
- Câu lạc bộ hoạt động xã hội
- AnhThu-1976
- Thứ tư lúc 16:37
- Những vấn đề chung
- TatLap
- Thứ năm lúc 09:39
- Lọc và sắp xếp dữ liệu
- kenshithanh
- 1/4/15
- Chơi Game với Excel
- PhanTuHuong
- 14/12/25
- Thư giãn
- PhanTuHuong
- 5/10/20
- Thư giãn
- tiny1010
- 16/3/10
- Cấu trúc dữ liệu Excel và việc Xử lý dữ liệu
- Question Question
- ongke0711
- 6/10/24
- Lập Trình với Excel
- phamdinh.huy.aladin@gmail
- 15/12/25
- Hàm và công thức Excel
- huevantran
- Thứ hai lúc 16:55
- Giải thích, gỡ rối, xử lý lỗi công thức
- kaoehtkid
- 15/12/25
- Những vấn đề chung
- levovantoan
- 19/12/25
- Giải thích, gỡ rối, xử lý lỗi công thức
- trangntn92
- Thứ hai lúc 13:56
- Hàm và công thức Excel
- Na7979
- 20/12/25
- Lọc và sắp xếp dữ liệu
- huuthang_bd
- 30/12/13
- Xây dựng ứng dụng.
- GPE-Trợ Lý
- Chủ nhật lúc 10:02
- Học tập Online
- hoangvucntt
- 20/12/25
- Cấu trúc dữ liệu Excel và việc Xử lý dữ liệu
Thành viên có số lượng bài viết cao nhất tháng
- Maika8008 46
- dungpham01 24
- thanthanhan 23
- ongke0711 23
- ptm0412 19
- Phan Thế Hiệp 17
- eagle12 16
- nguyenanhtruong2409 16
- pycckuu410 12
- HUONGHCKT 12
- vic_it 11
- Gà Con yêu VBA 11
- nhhnam 10
- dieppk.nb92 10
- Vũ Hải Sơn 9
- HeSanbi 9
- le_vis 8
- duongnhuxuyen 8
- bsbnhh 7
- SA_DQ 7
Thành viên có điểm tương tác cao nhất tháng
- Phan Thế Hiệp 88
- Maika8008 39
- ptm0412 25
- thanthanhan 20
- ongke0711 20
- HeSanbi 17
- dungpham01 15
- HUONGHCKT 9
- eagle12 9
- SA_DQ 9
- Cúc Hr 8
- pycckuu410 6
- dieppk.nb92 6
- Gà Con yêu VBA 6
- Mr.hieudoanxd 5
- befaint 5
- Hoàng Tuấn 868 4
- Phuocam 4
- nguyenanhtruong2409 4
- HieuCD 3
Thời gian đếm ngược.
000 Ngày 00 Giờ 00 phút 00 giây Thân mời tham dự sự kiện sinh nhật GPE 2025- Trang chủ
- Diễn đàn
- Lập Trình với Excel
- Website này sử dụng cookies. Tiếp tục sử dụng trang này, đồng nghĩa với việc bạn chấp nhận website sử dụng cookies. Chấp nhận Tìm hiểu thêm.…
Từ khóa » Hàm Sum Trong Vba Excel
-
Hướng Dẫn Cách Viết Hàm SUMIFS Trong VBA - Blog Học Excel Online
-
Sử Dụng SUM () Trong VBA - HelpEx
-
Macro|Bài 26-2| Hàm Trong VBA| SUM,SUMIF,SUMIFS ... - YouTube
-
Hỏi Code VBA Tương đương Hàm Code Và Hàm Sum Trong Excel
-
Hỏi Code VBA Tương đương Hàm Code Và Hàm Sum ...
-
VBA Exel|Macro|Bài 26-2| Hàm Trong VBA| SUM ... - Tài Chính 4u
-
Sum Function In VBA - Excel - Stack Overflow
-
VBA Sum Function (Ranges, Columns, & More) - Automate Excel
-
Hàm SUMIF Trong Excel - Ví Dụ Tính Tổng Có điều Kiện
-
Excel VBA Thực Chiến - Học Thật Nhanh
-
Cách Dùng Hàm SUM Trong Excel để Tính Tổng
-
Thiết Lập Công Thức Cho Các ô Excel Bằng VBA - Freetuts
-
VBA Exel|Macro|Bài 26-2| Hàm Trong VBA ... - HỖ TRỢ SINH VIÊN