Tạo tổng số cho vùng động bằng VBA trong Microsoft Excel
Trong bài viết này, chúng tôi sẽ tạo một hàm tùy chỉnh để tạo tổng số cho phạm vi động.
Dữ liệu thô cho bài viết này bao gồm các số ngẫu nhiên.
Trong ví dụ này, chúng tôi muốn tính tổng các giá trị trong tất cả các ô trong mỗi cột. Mỗi cột có số lượng giá trị khác nhau.
Chúng tôi đã tạo một hàm tùy chỉnh ‘DynaSum’ để tính tổng các giá trị trong tất cả các ô.
Hàm tùy chỉnh ‘DynaSum’ tính tổng giá trị của tất cả các ô liên tiếp. Hàm này sẽ tính tổng tất cả các giá trị cho đến khi gặp ô trống.
Nếu chúng tôi thêm bất kỳ giá trị bổ sung nào bên trên các giá trị đã xác định, thì các giá trị đó sẽ được thêm tự động.
Giải thích mã
Đặt Rng = Application.Caller Đoạn mã trên được sử dụng để gán ô chứa hàm tùy chỉnh làm đối tượng Range.
Vui lòng theo dõi bên dưới để biết mã
Option Explicit Function DynaSum(Optional Rng As Range) 'Declaring variables Dim Total As Double Dim LngRow As Long Dim LngCol As Integer 'Refresh function when value in worksheet is changed Application.Volatile 'Assigning range if Range is not specified in the function If Rng Is Nothing Then Set Rng = Application.Caller End If 'Getting the column and row number LngCol = Rng.Column LngRow = Rng.Row - 1 'Looping through all the cells in the column until blank cell is encountered Do Until IsEmpty(Cells(LngRow, LngCol)) Total = Total + Cells(LngRow, LngCol) LngRow = LngRow - 1 If LngRow = 1 Then Exit Do Loop 'Getting output DynaSum = Total End Function
Nếu bạn thích blog này, hãy chia sẻ nó với bạn bè của bạn trên Facebook và Facebook.
Chúng tôi rất muốn nghe ý kiến từ bạn, hãy cho chúng tôi biết cách chúng tôi có thể cải thiện công việc của mình và làm cho nó tốt hơn cho bạn. Viết thư cho chúng tôi [email protected]