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,852 Được thích 5,839 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,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 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,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 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,790 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,852 Được thích 5,839 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,790 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,812 Được thích 37,526 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,852 Được thích 5,839 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: 11
Upvote 0 Maika8008

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) 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,812 Được thích 37,526 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

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
Trả lời 3 Đọc 92 Hôm nay lúc 00:46 Lá chanh L 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 12 Đọc 672 Hôm qua, lúc 18:23 SA_DQ SA_DQ D
  • Question Question
Tách dòng tự động theo điều kiện bằng VBA
    • Cười
  • duongnhuxuyen
  • 12/12/25
  • Lập Trình với Excel
Trả lời 18 Đọc 572 Hôm qua, lúc 14:23 duongnhuxuyen D PhanTuHuong Bán sách Excel nâng cao để ủng hộ đồng bào bão lũ năm 2025!
    • Yêu thích
  • PhanTuHuong
  • 10/12/25
  • Câu lạc bộ hoạt động xã hội
Trả lời 6 Đọc 453 Thứ năm lúc 23:12 PhanTuHuong PhanTuHuong A Có cách nào điều chỉnh cho tên Sheet lớn ra
    • Cười
  • AnhThu-1976
  • Thứ tư lúc 16:37
  • Những vấn đề chung
Trả lời 8 Đọc 209 Thứ năm lúc 17:22 SA_DQ SA_DQ T Xin hỏi cách để lọc dữ liệu ngày tháng của nhiều sheet
  • TatLap
  • Thứ năm lúc 09:39
  • Lọc và sắp xếp dữ liệu
Trả lời 6 Đọc 132 Thứ năm lúc 13:35 TatLap T K xin file excel bảng đấu bóng đá
    • Yêu thích
  • kenshithanh
  • 1/4/15
  • Chơi Game với Excel
Trả lời 48 Đọc 30K Thứ tư lúc 18:18 SA_DQ SA_DQ PhanTuHuong Nếu diễn đàn GPE đóng cửa?
    • Thích
    • Yêu thích
  • PhanTuHuong
  • 14/12/25
  • Thư giãn
Trả lời 26 Đọc 1K Thứ tư lúc 17:29 TH280861 T PhanTuHuong Miền Tây mùa nước nổi
    • Thích
    • Ngạc nhiên
  • PhanTuHuong
  • 5/10/20
  • Thư giãn
Trả lời 31 Đọc 3K Thứ tư lúc 14:45 SA_DQ SA_DQ T Lọc dự liệu với hai điều kiện
  • tiny1010
  • 16/3/10
  • Cấu trúc dữ liệu Excel và việc Xử lý dữ liệu
Trả lời 20 Đọc 7K Thứ tư lúc 13:23 dungpham01 D ongke0711
  • Question Question
Tải hóa đơn điện tử (https://hoadondientu.gdt.gov.vn/) Excel Vba
    • Thích
    • Yêu thích
    • Cảm ơn
  • ongke0711
  • 6/10/24
  • Lập Trình với Excel
4 5 6 Trả lời 584 Đọc 84K Thứ tư lúc 09:39 tuanktt3 T P Lỗi hàm VBA phải add-in sau mỗi lần mở file
  • phamdinh.huy.aladin@gmail
  • 15/12/25
  • Hàm và công thức Excel
Trả lời 8 Đọc 358 Thứ tư lúc 08:07 phamdinh.huy.aladin@gmail P huevantran Xin chỉ giúp sự khác nhau giữa giá trị trong ô A3 và A4 là gì
  • huevantran
  • Thứ hai lúc 16:55
  • Giải thích, gỡ rối, xử lý lỗi công thức
Trả lời 7 Đọc 184 Thứ ba lúc 12:19 dungpham01 D K Các nút Buttom, Combobox, Textbox bị thay đổi kích thước ...
  • kaoehtkid
  • 15/12/25
  • Những vấn đề chung
Trả lời 15 Đọc 445 Thứ ba lúc 11:36 ongke0711 ongke0711 L nhờ hoàn thiện file dò xổ số
    • Cười
  • levovantoan
  • 19/12/25
  • Giải thích, gỡ rối, xử lý lỗi công thức
Trả lời 8 Đọc 417 Thứ ba lúc 08:57 Gà Con yêu VBA Gà Con yêu VBA T lấy hình ảnh từ sheet data sang sheet tra cứu
  • trangntn92
  • Thứ hai lúc 13:56
  • Hàm và công thức Excel
Trả lời 1 Đọc 121 Thứ hai lúc 15:00 Maika8008 Maika8008 N Hướng dẫn công thức Query kết hợp Arrayfomula bị lỗi
  • Na7979
  • 20/12/25
  • Lọc và sắp xếp dữ liệu
Trả lời 1 Đọc 152 Thứ hai lúc 10:22 trung1987 T 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 51 Đọc 21K Thứ hai lúc 05:37 Maika8008 Maika8008 GPE-Trợ Lý [GPE21] ỨNG DỤNG POWER QUERY TRONG ĐỐI CHIẾU DỮ LIỆU HÓA ĐƠN ĐIỆN TỬ VÀ DỮ LIỆU KẾ TOÁN (1 người xem)
    • Thích
  • GPE-Trợ Lý
  • Chủ nhật lúc 10:02
  • Học tập Online
Trả lời 0 Đọc 5K Chủ nhật lúc 10:02 GPE-Trợ Lý GPE-Trợ Lý H hướng dẫn xóa dòng, cột file excel
  • hoangvucntt
  • 20/12/25
  • Cấu trúc dữ liệu Excel và việc Xử lý dữ liệu
Trả lời 1 Đọc 152 20/12/25 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

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

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