Có bao nhiêu cách code tạo dòng tổng cộng?

Liên hệ QC

AnhThu-1976

Thành viên tích cực
Tham gia
17/10/14
Bài viết
1,016
Được thích
163
Em chào anh chị
Em muốn tìm hiểu tạo code sum cho bảng quỹ tiền mặt
Hiện nay em đã tạo được 1 cách, vì muốn học hỏi thêm nên nhờ anh chị viết code ở những dạng khác nhau để em học hỏi
Mô tả file:
Số liệu bắt đầu từ dòng 13 và bảng dữ liệu có thể dài ra nữa
Em muốn tính ở các ô màu vàng (trong ô em có ghi công thức)
Code của em
Mã:
Sub TonQuyTM_1()
    Dim lr As Long, i As Long
    lr = Range("F" & Rows.Count).End(3).Row
    MsgBox lr
    Range("G" & lr + 1).Resize(3, 3).ClearContents

    For i = 13 To lr
        Cells(lr + 2, 7) = Cells(lr + 2, 7) + Cells(i, 7)
        Cells(lr + 2, 8) = Cells(lr + 2, 8) + Cells(i, 8)
        'Cells(i, 9) = Cells(i - 1, 9) + Cells(i, 7) - Cells(i, 8)
    Next
    Cells(lr + 3, 9) = Cells(lr + 2, 7) - Cells(lr + 2, 8) + Cells(12, 9)
End Sub
Em cảm ơn!
 

File đính kèm

  • Total_Hoi.xlsm
    17.7 KB · Đọc: 16
Em chào anh chị
Em muốn tìm hiểu tạo code sum cho bảng quỹ tiền mặt
Hiện nay em đã tạo được 1 cách, vì muốn học hỏi thêm nên nhờ anh chị viết code ở những dạng khác nhau để em học hỏi
Mô tả file:
Số liệu bắt đầu từ dòng 13 và bảng dữ liệu có thể dài ra nữa
Em muốn tính ở các ô màu vàng (trong ô em có ghi công thức)
Code của em
Mã:
Sub TonQuyTM_1()
    Dim lr As Long, i As Long
    lr = Range("F" & Rows.Count).End(3).Row
    MsgBox lr
    Range("G" & lr + 1).Resize(3, 3).ClearContents

    For i = 13 To lr
        Cells(lr + 2, 7) = Cells(lr + 2, 7) + Cells(i, 7)
        Cells(lr + 2, 8) = Cells(lr + 2, 8) + Cells(i, 8)
        'Cells(i, 9) = Cells(i - 1, 9) + Cells(i, 7) - Cells(i, 8)
    Next
    Cells(lr + 3, 9) = Cells(lr + 2, 7) - Cells(lr + 2, 8) + Cells(12, 9)
End Sub
Em cảm ơn!
Ví dụ:
PHP:
 Range("G" & lr + 2).Formula = Application.Evaluate("=SUM(G13:G" & lr & ")")
 Range("H" & lr + 2).Formula = Application.Evaluate("=SUM(H13:H" & lr & ")")
 
Upvote 0
Upvote 0
Mình có 1 cách tà đạo thế này, bạn tham khảo:

Bước 1: Lấy chuột chọn từ dòng 20 cho đến 65500 & nhấn nút thích hợp trên thanh menu để thêm dòng
Lúc đó 2 dòng công thức tô vàng của bạn sẽ được (bị) đẩy xuống dòng 65502
Bước 2: Cho ẩn những dòng mới thêm đi

Từ các bước này ta hình dung 1 macro có nội dung sau:

B1: Cho hiện những dòng bị ẩn do lần chạy macro trước đó
B2: Xác định dòng cuối của cột 'F' có dữ liệu, ví dụ lRw (Điều này bạn cũng đã quen làm)
B3: Cho ẩn các dòng từ dòng lRw +1 cho tới dòng 65500

Mong là bạn tự làm được bằng cách thu macro với số dòng ban đầu (khi chưa quen việc) chỉ là 655 dòng
& chúc thành công mĩ mãn!
 
Upvote 0
Không biết có cách tính theo kiểu
.FormulaR1C1
không ạ?
Mã:
Cll.FormulaR1C1 = "=SUM(R13C:R[-1]C)"
Dòng code trên sẽ tạo công thức SUM từ dòng 13 đến dòng liền trên ô Cll của cột cùng cột với Cll. Trong đó, 13 là dòng đầu tiên của vùng tính tổng.
 
Upvote 0
Thắc mắc: học chi nhiều cái chi tiết thế này. Nhớ sao hết.
Đúng là nhớ không hết
Nhưng em lập chủ đề này để nhiều người khác cùng đọc
1/ Để họ tự chọn 1 cách nào để áp dụng
2/ Khi họ đọc 1 chủ đề khác mà có code tương tự thì họ sẽ hiểu đoạn code đó làm gì
Range("G" & lr + 2) .FormulaR1C1="Sum(R13C:R[-1]C)"
Thay bằng
Mã:
Range("G" & lr + 2).FormulaR1C1 = "=Sum(R13C:R[-1]C)"
Hình như nó thiếu 1 dấu =, phải không Thầy!
 
Upvote 0
Đúng là nhớ không hết
Nhưng em lập chủ đề này để nhiều người khác cùng đọc
1/ Để họ tự chọn 1 cách nào để áp dụng
2/ Khi họ đọc 1 chủ đề khác mà có code tương tự thì họ sẽ hiểu đoạn code đó làm gì

Thay bằng
Mã:
Range("G" & lr + 2).FormulaR1C1 = "=Sum(R13C:R[-1]C)"
Hình như nó thiếu 1 dấu =, phải không Thầy!
Đúng rồi. Học phải biết phát hiện như thế
 
Upvote 0
Có thể viết gọn 2 dòng trong #2 bằng:
PHP:
 .Range("G" & LR + 2).Resize(, 2).Formula = "=sum(G13:G" & LR & ")"
 
Upvote 0
Đúng là nhớ không hết
Nhưng em lập chủ đề này để nhiều người khác cùng đọc
...
Chính tôi cũng đặt thắc mắc ấy để nhiều người khác cùng đọc.
Nhưng bây giờ thì tôi chấp nhận là mình hoàn toàn sai lầm. (xem bên dưới)

...
2/ Khi họ đọc 1 chủ đề khác mà có code tương tự thì họ sẽ hiểu đoạn code đó làm gì
...
Bây giờ thì tôi đã hiểu tại sao ở đây, diễn đàn này, bà con viết code không bao giờ chú thích xem code ấy làm gì.
Bởi vì bà con viết trên quan điểm người đọc phải có bộ óc thông thái, cái gì cũng biết.
 
Upvote 0
Web KT
Back
Top Bottom