Hàm Sum Trong Vba Excel

Giải Pháp Excel
  • 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 New 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
  • Facebook
  • Đóng góp
Đăng nhập Đăng Ký Có gì mới? Tìm kiếm

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 Bởi: Tìm kiếm Tìm nâng cao…
  • Tìm bài viết mới
  • Tìm theo chuyên mục
Menu Đăng nhập Đăng Ký Install the app Install How to install the app on iOS

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
You are using an out of date browser. It may not display this or other websites correctly.You should upgrade or use an alternative browser. Hàm Sum trong Vba excel ? (1 người xem)
  • Thread starter Thread starter huynhphuong thcspt
  • Ngày gửi Ngày gửi 5/7/21
Liên hệ QC

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

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
Sắp xếp theo thời gian sắp xếp theo bầu chọn Maika8008

Maika8008

Thành viên gạo cội
Tham gia 12/6/20 Bài viết 4,863 Được thích 5,848 Donate (Momo) Donate 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,792 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 0 SA_DQ

SA_DQ

/(hông là gì!
Thành viên danh dự Tham gia 8/6/06 Bài viết 14,797 Được thích 23,262 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 0 huynhphuong thcspt

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: 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
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,792 Nghề nghiệp Thầy bói bài ta
huynhphuong 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

Maika8008

Thành viên gạo cội
Tham gia 12/6/20 Bài viết 4,863 Được thích 5,848 Donate (Momo) Donate 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,792 Nghề nghiệp Thầy bói bài ta
Maika8008 đã 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

ptm0412

Bad Excel Member
Thành viên BQT Administrator Tham gia 4/11/07 Bài viết 14,865 Được thích 37,604 Donate (Momo) Donate 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

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

Maika8008

Thành viên gạo cội
Tham gia 12/6/20 Bài viết 4,863 Được thích 5,848 Donate (Momo) Donate 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

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: 12
Upvote 0 Maika8008

Maika8008

Thành viên gạo cội
Tham gia 12/6/20 Bài viết 4,863 Được thích 5,848 Donate (Momo) Donate 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

ptm0412

Bad Excel Member
Thành viên BQT Administrator Tham gia 4/11/07 Bài viết 14,865 Được thích 37,604 Donate (Momo) Donate 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

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

H Lọc giá trị duy nhất theo cụm (1 người xem)
  • hoaiantrinh
  • Hôm nay lúc 14:58
  • Hàm và công thức Excel
Trả lời 0 Đọc 26 Hôm nay lúc 14:58 hoaiantrinh H GPE-Trợ Lý CHÚC MỪNG NĂM MỚI BÍNH NGỌ 2026
    • Yêu thích
    • Thích
  • GPE-Trợ Lý
  • Hôm nay lúc 10:45
  • Thông tin về diễn đàn
Trả lời 0 Đọc 41 Hôm nay lúc 10:45 GPE-Trợ Lý GPE-Trợ Lý L Thu Chi Gia Đình
    • Cười
  • lehang0812
  • Thứ năm lúc 17:12
  • TPHCM
Trả lời 5 Đọc 210 Hôm nay lúc 10:19 nguoiconxunui N M Bảo mật code VBA autocad! (1 người xem)
  • Michael Bit
  • Hôm qua, lúc 08:44
  • Hỏi đáp những vấn đề khác
Trả lời 11 Đọc 230 Hôm nay lúc 07:37 tuan16 T SA_DQ Copilot bình luận các ván cờ vua từng ngày.
    • Thích
  • SA_DQ
  • 3/11/25
  • Chia sẻ
Trả lời 64 Đọc 2K Hôm nay lúc 04:30 SA_DQ SA_DQ HeSanbi
  • Đã giải quyết
FitRowXL v1.3 - Giãn dòng tự động và bổ trợ in ấn Excel (*01/2026 mới) (2 người xem)
    • Thích
    • Yêu thích
  • HeSanbi
  • 18/4/21
  • Lập Trình với Excel
Trả lời 77 Đọc 30K Hôm qua, lúc 19:00 chothadiem chothadiem N Tạo COM Add-In bằng Visual C++
    • Thích
  • nguyendang95
  • 6/7/25
  • Excel và các ngôn ngữ lập trình khác
Trả lời 17 Đọc 2K Hôm qua, lúc 10:54 fiveter F HeSanbi
  • Đã giải quyết
LocalizeXL v1.73 - Làm nổi bật ô đang chọn và cuộn trang tự động (phiên bản 2026)
    • Thích
    • Yêu thích
    • Cảm ơn
  • HeSanbi
  • 5/3/21
  • Lập Trình với Excel
Trả lời 85 Đọc 18K Chủ nhật lúc 21:43 chothadiem chothadiem Nguyễn Duy Tuân
  • Dán lên cao
Phiên bản mới Add-in A-Tools AI v10 (2024)
    • Thích
  • Nguyễn Duy Tuân
  • 13/9/24
  • BLUESOFTS: A-Excel, A-Tools
Trả lời 62 Đọc 12K Thứ bảy lúc 18:10 Nguyễn Duy Tuân Nguyễn Duy Tuân E Giúp Đặt tên lại (Rename) cho hàng loạt các file PDF theo cùng 1 quy tắc
  • Excel my love_1
  • 15/4/23
  • Tin học mở rộng
Trả lời 4 Đọc 4K Thứ sáu lúc 15:20 luongha.ktqd L ongke0711
  • Question Question
Tải hóa đơn điện tử (https://hoadondientu.gdt.gov.vn/) Excel Vba (1 người xem)
    • Thích
    • Yêu thích
    • Cảm ơn
  • ongke0711
  • 6/10/24
  • Lập Trình với Excel
5 6 7 Trả lời 622 Đọc 92K Thứ năm lúc 16:11 LOGANWover L Quang_Hải
  • Question Question
Chia sẻ một thuật toán đơn giản để trộn cells
    • Thích
    • Yêu thích
  • Quang_Hải
  • Thứ tư lúc 10:14
  • Lập Trình với Excel
Trả lời 12 Đọc 381 Thứ năm lúc 11:13 Quang_Hải Quang_Hải HeSanbi TaxCode v4.33 - Tra cứu mã số thuế từ tổng cục thuế, masothue và thuvienphapluat
    • Thích
    • Yêu thích
  • HeSanbi
  • 27/11/25
  • Các Add-ins cho excel
Trả lời 19 Đọc 3K Thứ năm lúc 08:54 HeSanbi HeSanbi HeSanbi
  • Question Question
Tạo Add-in, tệp Excel, Word, Access tự động cập nhật phiên bản mới từ Cloud cho chính nó
    • Thích
    • Yêu thích
  • HeSanbi
  • 2/2/26
  • Lập Trình với Excel
Trả lời 1 Đọc 243 Thứ tư lúc 17:03 HeSanbi HeSanbi TranThanhPhong Hàm EXACT
    • Thích
  • TranThanhPhong
  • 30/4/14
  • Dự án: Công thức & Hàm 97-2019
Trả lời 3 Đọc 9K 3/2/26 ptm0412 ptm0412 giaiphap Add-Ins cho Excel 2007 -2016 32bit và 64bit (1 người xem)
    • Thích
    • Yêu thích
    • Ngạc nhiên
  • giaiphap
  • 8/8/15
  • Các Add-ins cho excel
4 5 6 Trả lời 518 Đọc 226K 3/2/26 Gà Công Nghệ Gà Công Nghệ V Một Excel add-in vibe coding
    • Thích
  • vietdang170
  • 28/1/26
  • Các Add-ins cho excel
Trả lời 18 Đọc 747 3/2/26 vietdang170 V H Xin giúp đặt điều kiện trong Conditional Formating
  • hoanglocphat
  • 2/2/26
  • Hỏi đáp những vấn đề khác
Trả lời 6 Đọc 216 3/2/26 Gà Con yêu VBA Gà Con yêu VBA mrjun80 Xin giúp hàm excel để tìm 1 số trong số có 2 chữ số
  • mrjun80
  • 31/1/26
  • Hàm và công thức Excel
Trả lời 4 Đọc 214 1/2/26 Gà Con yêu VBA Gà Con yêu VBA N Vấn đề về hiệu năng khi thực hiện ghép chuỗi trong VBA với tần suất lớn
    • Thích
    • Cảm ơn
  • nguyendang95
  • 23/1/26
  • Excel và các ngôn ngữ lập trình khác
Trả lời 36 Đọc 1K 31/1/26 ptm0412 ptm0412 Xem thêm… Chia sẻ: Facebook X Bluesky LinkedIn Reddit Pinterest Tumblr WhatsApp Email Chia sẻ Link

Thành viên có số lượng bài viết cao nhất tháng

  • HeSanbi 14
  • chothadiem 11
  • Gà Công Nghệ 5
  • Michael Bit 5
  • YêuCN 4
  • Officexinh 4
  • vietdang170 4
  • pycckuu410 3
  • HieuCD 3
  • chiendich 3
  • hoanglocphat 3
  • VietHoangPhan 2
  • DeTong 2
  • Gà Con yêu VBA 2
  • Quang_Hải 2
  • linhdao2909 1
  • HUONGHCKT 1
  • vuvannguyen1972 1
  • hoaiantrinh 1
  • ptm0412 1

Thành viên có điểm tương tác cao nhất tháng

  • HeSanbi 19
  • Quang_Hải 7
  • vietdang170 5
  • Gà Con yêu VBA 4
  • YêuCN 3
  • pycckuu410 3
  • HieuCD 3
  • chiendich 3
  • DeTong 3
  • Phuocam 3
  • GPE-Trợ Lý 3
  • Officexinh 2
  • HUONGHCKT 2
  • Michael Bit 1

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.…
Back Top Bottom

Từ khóa » Hàm Sum Trong Vba Excel