Hàm Sum trong Vba excel ?

Liên hệ QC

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):
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
    22.1 KB · Đọc: 36
Viết như sau:
Rich (BB code):
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
Đây là 1 cách, nếu bạn cho là gọn:
PHP:
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
Viết như sau:
Rich (BB code):
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
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):
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
    3.1 MB · Đọc: 19
Upvote 0
...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ờ 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
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):
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
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
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á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
Rich (BB code):
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ã:
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:
Upvote 0
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
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):
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):
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
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):
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):
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.
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
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 đó)
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):
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):
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
    43.3 KB · Đọc: 10
Upvote 0
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):
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):
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 !
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
b. Cách 2: Chương trình chỉ lấy dữ liệu ở dòng 78 để tính
Rich (BB code):
            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
...

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ã:
Cells(79, col).Value = Cells(79, col) + Cells(arrD(c), col)
 
Upvote 0
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ã:
Cells(79, col).Value = Cells(79, col) + Cells(arrD(c), col)
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
Web KT

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

Back
Top Bottom