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,882 Được thích 5,879 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,811 Được thích 23,295 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,882 Được thích 5,879 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,868 Được thích 37,613 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,882 Được thích 5,879 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,882 Được thích 5,879 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,868 Được thích 37,613 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

katanvn File kiểm đếm phiếu bầu cử 2026-2031 dễ hiểu có kết quả và biên bản (7 người xem)
    • Thích
  • katanvn
  • 4/3/26
  • Excel Ứng Dụng
Trả lời 12 Đọc 6K 57 phút trước ongke0711 ongke0711 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 644 Đọc 96K Hôm nay lúc 21:07 axa00000019 axa00000019 L Công thức tìm ngày giao dịch gần nhất thỏa mãn theo 2 điều kiện
  • luckily1766
  • Hôm nay lúc 16:06
  • Hàm và công thức Excel
Trả lời 2 Đọc 40 Hôm nay lúc 16:41 LOGANWover L adua29 File Excel kiểm phiếu bầu cử Quốc hội và HĐND các cấp (4 người xem)
    • Thích
  • adua29
  • 9/4/21
  • Excel Ứng Dụng
Trả lời 30 Đọc 8K Hôm nay lúc 15:46 pcthai P HeSanbi
  • Đã giải quyết
FitRowXL v1.4 - Giãn dòng tự động và bổ trợ in ấn Excel (*02/2026 mới)
    • Thích
    • Yêu thích
  • HeSanbi
  • 18/4/21
  • Lập Trình với Excel
Trả lời 82 Đọc 31K Hôm nay lúc 15:29 chothadiem chothadiem HeSanbi
  • Question Question
Trình điều khiển Web tải hóa đơn điện tử từ trang Misa (actapp.misa.vn/app) (2 người xem)
    • Thích
    • Yêu thích
  • HeSanbi
  • 26/2/26
  • Lập Trình với Excel
Trả lời 4 Đọc 441 Hôm nay lúc 13:46 vinhketoan2010 V N Lập file Nhập - Xuất - Tồn cho kho có 300 mã nguyên vật liệu (1 người xem)
  • nguyenlamthumua
  • Hôm qua, lúc 18:12
  • Những vấn đề chung
Trả lời 3 Đọc 124 Hôm nay lúc 13:41 SA_DQ SA_DQ huuthang_bd Cùng xây dựng file Gia Phả
    • Thích
  • huuthang_bd
  • 30/12/13
  • Xây dựng ứng dụng.
Trả lời 52 Đọc 22K Hôm nay lúc 11:27 ck1k2.bg ck1k2.bg H Xin A/C Giúp Tách địa chỉ ra Tỉnh , Huyện, Xã, Ấp
  • hoanghanh80
  • 31/5/24
  • Hàm và công thức Excel
Trả lời 12 Đọc 2K Hôm nay lúc 09:47 Gà Con yêu VBA Gà Con yêu VBA SA_DQ SodokuX nhờ Copilot trợ giúp
    • Thích
  • SA_DQ
  • 3/3/26
  • Chơi Game với Excel
Trả lời 1 Đọc 131 Hôm nay lúc 08:52 HieuCD H vova2209
  • Question Question
Co, Dãn dòng vừa trang in
  • vova2209
  • 6/3/26
  • Lập Trình với Excel
Trả lời 20 Đọc 429 Hôm qua, lúc 18:19 Maika8008 Maika8008 G Vẽ mặt cắt dầm từ excel
    • Thích
    • Yêu thích
    • Cảm ơn
  • gpe.vn
  • 17/6/24
  • Xây dựng ứng dụng.
Trả lời 21 Đọc 2K Hôm qua, lúc 17:03 gpe.vn G E Xin giúp tách lấy tên Tỉnh thành, Quận huyện, Phường xã từ địa chỉ có sẵn (1 người xem)
  • estudyvn
  • 22/4/19
  • Học tập Online
Trả lời 9 Đọc 2K Hôm qua, lúc 15:33 HUONGHCKT H phuongnam366377 Xây dựng RPC Server cho Excel / Access bằng Delphi – Tận dụng lại DLL và bảo mật mã nguồn (1 người xem)
    • Thích
  • phuongnam366377
  • 28/2/26
  • Excel và các ngôn ngữ lập trình khác
Trả lời 10 Đọc 380 Hôm qua, lúc 14:56 A-T A V các bác ơi giúp e hàm countif với ạ
    • Thích
  • vunl
  • Thứ ba lúc 16:46
  • Hàm và công thức Excel
Trả lời 3 Đọc 123 Hôm qua, lúc 13:57 vunl V H Làm phiếu lương nhân viên công ty
    • Cười
  • hieuchi89
  • Thứ tư lúc 09:23
  • Hàm và công thức Excel
Trả lời 3 Đọc 180 Hôm qua, lúc 13:36 trhieu T N Lập báo cáo thống kê sản lượng theo ngày của từng nhân viên (1 người xem)
  • Nhyyyyyyyyy
  • Hôm qua, lúc 10:22
  • Những vấn đề chung
Trả lời 4 Đọc 105 Hôm qua, lúc 13:12 levant0908 L T Xin đoạn code để gửi mail hàng loạt có đính kèm file PDF
  • tuquyen1711
  • 1/3/26
  • Macro4.0 và Dialog Sheet 5.0
Trả lời 3 Đọc 240 Hôm qua, lúc 11:31 levant0908 L GPE-Trợ Lý [GPE22] BƯỚC NÂNG CẤP QUAN TRỌNG NHỮNG POWER QUERY ĐƠN GIẢN (1 người xem)
    • Thích
  • GPE-Trợ Lý
  • Hôm qua, lúc 09:59
  • Học tập Online
Trả lời 0 Đọc 1K Hôm qua, lúc 09:59 GPE-Trợ Lý GPE-Trợ Lý SA_DQ Copilot bình luận các ván cờ vua từng ngày. (1 người xem)
    • Thích
  • SA_DQ
  • 3/11/25
  • Chia sẻ
Trả lời 93 Đọc 3K Hôm qua, lúc 04:08 SA_DQ SA_DQ 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

  • vova2209 11
  • Maika8008 11
  • phuongnam366377 8
  • HeSanbi 7
  • HUONGHCKT 6
  • SA_DQ 6
  • levant0908 5
  • adua29 5
  • katanvn 5
  • ongke0711 5
  • vanphong1980 3
  • pycckuu410 3
  • PhanTuHuong 3
  • chienminhanh 3
  • MinhKhai 3
  • A-T 3
  • gpe.vn 3
  • doredore1988 2
  • Vũ Hải Sơn 2
  • ptm0412 2

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

  • Maika8008 16
  • HUONGHCKT 13
  • SA_DQ 10
  • katanvn 7
  • GPE-Trợ Lý 6
  • phuongnam366377 3
  • ptm0412 3
  • yeudoi 2
  • vietdang170 2
  • vunl 2
  • HieuCD 2
  • Gà Con yêu VBA 2
  • adua29 2
  • kHOA1973 1
  • mafiana 1
  • le_vis 1
  • doredore1988 1
  • huhumalu 1
  • trhieu 1
  • HeSanbi 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