Tạo (Tùy chỉnh) Các chức năng do người dùng xác định (UDF)

Hướng dẫn này sẽ giải thích cách tạo Hàm do người dùng xác định trong VBA.

VBA được tạo thành từ các thủ tục phụ và thủ tục hàm. Thủ tục hàm trả về một giá trị và có thể được gọi bằng Thủ tục con hoặc có thể được sử dụng trong trang tính Excel, trong đó giá trị mà hàm tạo ra được trả về trang tính Excel. Tất nhiên, Excel có một loạt các hàm tích hợp sẵn - như Hàm Sum hoặc Hàm If. Các thủ tục hàm mà bạn viết trong VBA được sử dụng theo kiểu tương tự như hàm dựng sẵn và được gọi là Hàm do người dùng xác định (UDF).

Tại sao phải tạo một UDF?

Thiếu chức năng bắt buộc

Một trong những lý do chính khiến bạn muốn tạo UDF trong Excel là không có một hàm tích hợp sẵn nào có thể thực hiện nhiệm vụ cho bạn. Viết hàm của riêng bạn trong VBA thường là cách hiệu quả nhất để giải quyết vấn đề. Hàm bên dưới sẽ chuyển đổi một giá trị từ kilôgam sang pound trong đó một tham số biến (dblKilo) đang được sử dụng để lấy giá trị của kilôgam để thực hiện phép tính.

Thay thế một quy trình con (Macro)

Bạn có thể viết một thủ tục con (macro) để giải quyết công việc cho bạn - nhưng thủ tục con không trả về giá trị và chúng không động - nói cách khác, nếu các giá trị trong trang tính của bạn thay đổi, bạn sẽ cần chạy lại macro để các tính toán trong macro cập nhật dữ liệu của bạn. Quy trình phụ bên dưới cũng sẽ chuyển đổi kilôgam của chúng tôi sang pound, nhưng mỗi khi dữ liệu thay đổi trong A1, bạn sẽ cần chạy lại macro để cập nhật kết quả.

Thay thế một công thức

Bạn có thể có một công thức thực sự phức tạp trong Excel mà bạn cần phải sử dụng lặp đi lặp lại - đặt công thức vào mã VBA giúp dễ đọc và dễ hiểu hơn - cũng như có thể loại bỏ lỗi người dùng khi nhập công thức.

Tạo UDF

Để tạo một UDF, trước tiên hãy thêm một mô-đun vào sổ làm việc Excel của bạn hoặc nếu bạn có sổ làm việc Macro Cá nhân, bạn có thể sử dụng một mô-đun hiện có trong đó hoặc thêm một mô-đun mới. Để làm điều này, bạn cần phải ở trong Trình soạn thảo Visual Basic (VBE). Để truy cập VBE, nhấn ALT + F11 hoặc bấm vào Tùy chọn Visual Basic trong tab Nhà phát triển của ruy-băng của bạn.

TIỀN BOA: Nếu bạn chưa bật tab Nhà phát triển trong ruy-băng của mình, hãy chuyển đến Tệp, Tùy chọn và nhấp vào Tuy Biên ruy-băng. Đảm bảo rằng hộp kiểm Nhà phát triển được chọn và nhấp vào OK.

Để chèn một mô-đun mới, hãy chọn Dự án VBA bạn muốn chèn mô-đun vào (Dự án VBA cho cuốn sách hiện tại bạn đang làm việc hoặc Sổ làm việc Macro Cá nhân), nhấp vào Chèn Trình đơn và nhấp vào Mô-đun

Khi bạn đã tạo mô-đun của mình, bạn có thể bắt đầu tạo UDF của mình.

Tất cả các UDF đều bắt đầu bằng Hàm và sau đó là tên của UDF. Các hàm có thể là riêng tư hoặc công khai nhưng thông thường bạn muốn một UDF ở chế độ công khai để chúng xuất hiện trong hộp thoại Chèn Hàm trong Excel (xem cách sử dụng một hàm từ bên trong trang tính Excel trong bài viết này). Nếu bạn không đặt từ khóa Private trước hàm, thì hàm sẽ tự động được công khai.

123 Hàm TestFunction1 (intA As Integer) As IntegerTestFunction1 = intA * 7Chức năng kết thúc

Hàm trên có một đối số duy nhất (intA). Bạn có thể tạo một hàm với nhiều đối số

123 Hàm TestFunction2 (intA As Integer, intB As Integer, intC As Integer) As IntegerTestFunction2 = (intA * intB) + intCChức năng kết thúc

Bạn cũng có thể tạo một hàm với các đối số tùy chọn. Nếu đối số bị bỏ qua, bạn có thể đặt giá trị mặc định cho đối số trong hàm.

123 Hàm TestFunction3 (intA As Integer, intB As Integer, intC As Integer tùy chọn = 10) As IntegerTestFunction3 = (intA * intB) + intCChức năng kết thúc

Sử dụng một hàm từ bên trong một trang tính Excel

Các chức năng bạn đã tạo theo mặc định sẽ xuất hiện trong danh sách chức năng của bạn trong phần Người dùng xác định của danh sách chức năng.

Bấm vào fx để hiển thị hộp thoại Chèn Hàm.

Lựa chọn Đã xác định người dùng từ Danh sách Danh mục

Chọn chức năng bạn yêu cầu từ chức năng có sẵn Chức năng do người dùng xác định.

Ngoài ra, khi bạn bắt đầu viết hàm của mình trong Excel, hàm sẽ xuất hiện trong danh sách các hàm thả xuống.

Lưu các Hàm bằng Tệp Excel của bạn

Vì các Hàm được viết bằng mã VBA, nên lý do đó là mã cần phải có sẵn cho Sổ làm việc để sẵn có được sử dụng trong trang tính Excel. Bạn có thể lưu các chức năng của mình trong Sổ làm việc mà bạn đang sử dụng chúng hoặc bạn có thể lưu chúng trong sổ làm việc Macro Cá nhân của mình. Sổ làm việc Macro Cá nhân của bạn là một tệp ẩn sẵn dùng bất cứ khi nào Excel mở và do đó có sẵn cho bất kỳ Sổ làm việc nào trong Excel để sử dụng. Nó thường được tạo khi bạn ghi macro và chọn tùy chọn để lưu macro trong Sổ làm việc Macro Cá nhân.

Nếu bạn muốn giữ các chức năng của mình được lưu trong Sổ làm việc mà bạn đang làm việc, bạn sẽ cần đảm bảo rằng khi bạn lưu sổ làm việc, nó sẽ được lưu dưới dạng ‘Macro Enabled Workbook‘Hoặc một xlsm tập tin.

wave wave wave wave wave