Các hàm trang tính trong macro VBA sử dụng VBA trong Microsoft Excel
Trong VBAcode, nếu bạn phải tham chiếu đến các hàm trang tính nhất định như Sum, Vlookup, v.v., bạn có thể sử dụng chúng trực tiếp bằng cách sử dụng đối tượng Ứng dụng. Vì vậy, chúng ta sẽ sử dụng các hàm như – Application.WorksheetFunction.Sum hoặc Application.WorksheetFunction.Vlookup trong đó WorksheetFunction là phương thức của đối tượng Application.
Xem xét chúng ta có macro kiểm tra này, nếu chúng ta gõ Application.WorksheetFunction.
Chúng tôi sẽ nhận được một cửa sổ bật lên hiển thị công thức tính dưới hình ảnh
Vì vậy, ví dụ: nếu bạn muốn tính tổng các giá trị của dải ô này trong cột A bằng vba –
Cho phép có một biến có tên là SalesTotal sẽ lưu tổng trong đó. Để có được tổng trong SalesTotal, chúng ta sẽ sử dụng mã VBA sau trong mô-đun chuẩn:
_Sub macro4 ()
Dim SalesTotal As Long SalesTotal = Application.WorksheetFunction.Sum (Phạm vi (“A2: A6”))
MsgBox SalesTotal End Sub_ Để sao chép đoạn mã trên vào tệp của bạn, * Nhấn Alt + F11 trên bàn phím.
-
Ở phía bên tay trái, bạn sẽ thấy Microsoft Excel Objects.
-
Nhấp chuột phải và chọn Chèn.
-
Sau đó nhấp vào Mô-đun.
-
Sao chép mã vào cửa sổ mã bên phải.
Khi chúng tôi sử dụng macro mẫu này, chúng tôi sẽ nhận được thông báo hiển thị giá trị được lưu trữ trong Tổng doanh số và có thể được sử dụng trong các dòng mã khác trong macro.
Đầu ra chúng ta sẽ nhận được là –
Nếu bạn muốn SalesTotal được hiển thị trong ô A7, thì bạn có thể thay đổi dòng mã từ Msgbox SalesTotal thành Worksheets (“Sheet1”). Range (“A7”). Value = SalesTotal Xem xét chúng ta cũng cần doanh số trung bình cho những số liệu này trong ô A9.
Chúng ta có thể sử dụng đoạn mã dưới đây __Sub macro5 ()
Dim SalesTotal As Long With Worksheets (“Sheet1”)
SalesTotal = Application.WorksheetFunction.Sum (.Range (“A2: A6”))
End With End Sub__ Có một số thay đổi nhỏ đối với mã này so với mã trước đó.
-
Thay vì sử dụng một biến cho Giá trị trung bình, tôi đã điền trực tiếp giá trị đó sau khi tính toán vào ô A9. Do đó, bạn sẽ thấy dòng .Range (“A9”). Value = Application.WorksheetFunction.Average (.Range (“A2: A6”))
-
Dòng msgbox đã bị xóa.
-
Giá trị trong biến SalesTotal chuyển đến ô A7.
-
Lý tưởng nhất là bạn có thể lặp lại cùng một dòng mã đã được sử dụng cho mức trung bình, cho dòng mã Tổng bằng cách thay thế SalesTotal = Application.WorksheetFunction.Sum (.Range (“A2: A6”)) _ _.Range (“A7 ”) .Value = SalesTotal With _.Range (“ A7 ”). Value = Application.WorksheetFunction.Sum (.Range (“ A2: A6 ”)) _ Tuy nhiên, nó đã được giữ lại để bạn có thể hiểu các cách khác nhau của mã hóa cùng một nhiệm vụ. Tương tự, chúng ta có thể sử dụng các hàm khác trong khi sử dụng Application.WorksheetFunction. Tất cả những hàm mà chúng ta có thể sử dụng trực tiếp trong trang tính, chúng ta có thể sử dụng chúng tại đây.
Điều này làm cho việc sử dụng các hàm trong mã dễ dàng hơn để chúng ta có thể tính toán các công thức cần thiết mà không cần phải tạo mã cho công thức.
__ Nếu bạn thích blog của chúng tôi, hãy chia sẻ nó với bạn bè của bạn trên Facebook. Và bạn cũng có thể theo dõi chúng tôi trên Twitter 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, bổ sung hoặc đổi mới 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 tại [email protected] __