Trung bình cuộn trong Excel VBA
Dưới đây chúng ta sẽ xem xét một chương trình trong Excel VBA tạo ra một bảng trung bình cuộn. Đặt một nút lệnh trên trang tính của bạn và thêm dòng mã sau:
Range("B3").Value = WorksheetFunction.RandBetween(0, 100)
Dòng mã này nhập một số ngẫu nhiên từ 0 đến 100 vào ô B3. Chúng tôi muốn Excel VBA lấy giá trị cổ phiếu mới và đặt nó ở vị trí đầu tiên của bảng trung bình luân phiên. Tất cả các giá trị khác sẽ di chuyển xuống một nơi và giá trị cuối cùng sẽ bị xóa.
Tạo sự kiện thay đổi trang tính. Mã được thêm vào Sự kiện Thay đổi Trang tính sẽ được Excel VBA thực thi khi bạn thay đổi một ô trên trang tính.
-
Mở Trình soạn thảo Visual Basic.
-
Nhấp đúp vào Trang tính 1 (Sheet1) trong Trình khám phá dự án.
-
Chọn Trang tính từ danh sách thả xuống bên trái. Chọn Thay đổi từ danh sách thả xuống bên phải.
Thêm các dòng mã sau vào Sự kiện Thay đổi Trang tính:
-
Khai báo một biến gọi là giá trị mới của kiểu Số nguyên và hai phạm vi (giá trị đầu tiên và giá trị cuối cùng).
Dim newvalue As Integer, firstfourvalues As Range, lastfourvalues As Range
-
Sự kiện Thay đổi Trang tính lắng nghe tất cả các thay đổi trên Trang tính1. Chúng tôi chỉ muốn Excel VBA thực hiện điều gì đó nếu có gì đó thay đổi trong ô B3. Để đạt được điều này, hãy thêm dòng mã sau:
If Target.Address = "$B$3" Then
-
Chúng tôi khởi tạo giá trị mới với giá trị của ô B3, giá trị đầu tiên với Phạm vi (“D3: D6”) và giá trị cuối cùng với Phạm vi (“D4: D7”).
newvalue = Range("B3").Value Set firstfourvalues = Range("D3:D6") Set lastfourvalues = Range("D4:D7")
-
Bây giờ đến thủ thuật đơn giản. Chúng tôi muốn cập nhật bảng trung bình lăn. Bạn có thể đạt được điều này bằng cách thay thế bốn giá trị cuối cùng bằng bốn giá trị đầu tiên của bảng và đặt giá trị cổ phiếu mới ở vị trí đầu tiên.
lastfourvalues.Value = firstfourvalues.Value Range("D3").Value = newvalue
-
Đừng quên đóng câu lệnh if.
End if
-
Cuối cùng, nhập công thức = AVERAGE (D3: D7) vào ô D8.
-
Chạy thử chương trình bằng cách nhấp vào nút lệnh.