Ô tích lũy (tích lũy)

Nội dung

Thông thường, một tình huống phát sinh khi chúng ta cần tổng hợp (tích lũy) một số giá trị được nhập tuần tự vào một ô:

Những thứ kia. Ví dụ: nếu bạn nhập số 1 vào ô A5, thì số 1 sẽ xuất hiện trong B15. Nếu sau đó bạn nhập số 1 vào A7, thì số 1 sẽ xuất hiện trong ô B22, v.v. Nói chung, những gì mà kế toán (và không chỉ họ) gọi là tổng lũy ​​kế.

Bạn có thể triển khai một bộ tích lũy ô lưu trữ như vậy bằng cách sử dụng một macro đơn giản. Nhấp chuột phải vào tab trang tính nơi đặt các ô A1 và B1 và ​​chọn từ trình đơn ngữ cảnh Văn bản nguồn (Mã nguồn). Trong cửa sổ trình soạn thảo Visual Basic mở ra, sao chép và dán mã macro đơn giản:

Private Sub Worksheet_Change (ByVal Target As Excel.Range) Với Target If .Address (False, False) = "A1" Then If IsNumeric (.Value) Then Application.EnableEvents = False Range ("A2"). Value = Range (" A2 "). Value + .Value Application.EnableEvents = True End If End If End With End Sub  

Tất nhiên, địa chỉ của ô A1 và A2 có thể được thay thế bằng địa chỉ của bạn.

Nếu bạn cần theo dõi mục nhập dữ liệu và tóm tắt không phải từng ô riêng lẻ, mà là toàn bộ phạm vi, thì macro sẽ phải được thay đổi một chút:

Private Sub Worksheet_Change (ByVal Target As Excel.Range) If Not Intersect (Target, Range ("A1: A10")) Không có gì thì If IsNumeric (Target.Value) Then Application.EnableEvents = False Target.Offset (0, 1) .Value = Target.Offset (0, 1) .Value + Target.Value Application.EnableEvents = True End If End If End Sub  

Giả sử rằng dữ liệu được nhập vào các ô của phạm vi A1: A10 và các số đã nhập được tổng hợp trong cột liền kề ở bên phải. Nếu trong trường hợp của bạn, nó không liền nhau, thì hãy tăng dịch chuyển sang phải trong toán tử Offset - thay thế 1 bằng một số lớn hơn.

  • Macro là gì, chèn mã macro ở đâu trong VBA, cách sử dụng chúng?

Bình luận