Hàm do người dùng xác định trong VBA - Cách tạo UDF? (Ví dụ)

Hàm do người dùng xác định trong Excel VBA (UDF)

Microsoft cung cấp cho chúng ta nhiều chức năng tích hợp để tăng tốc công việc trong excel. Tuy nhiên bằng cách sử dụng mã hóa VBA, chúng ta có thể tạo các hàm của riêng mình và những hàm đó về mặt kỹ thuật được gọi là “Các hàm do người dùng xác định” (UDF). Chúng còn được gọi là “hàm tùy chỉnh” trong VBA excel.

Bất kỳ công thức nào có thể được truy cập từ trang tính bằng một đoạn mã được gọi là UDF. Nói một cách dễ hiểu, bất kỳ công thức nào không được tích hợp sẵn nhưng có sẵn trong Excel được gọi là Hàm do Người dùng Xác định.

Làm thế nào để tạo các hàm do người dùng xác định?

Mặc dù UDF là một phần của mô-đun của chúng tôi, chúng không phải là một phần của Chương trình con thông thường của chúng tôi trong VBA. Đây được gọi là một thủ tục hàm trong VBA. Giống như cách chúng ta bắt đầu mã hóa macro với từ SUB tương tự, chúng ta cần bắt đầu điều này bằng cách sử dụng từ “Hàm”. Thủ tục con có bắt đầu và kết thúc, tương tự Thủ tục chức năng có Bắt đầu và Kết thúc.

Ví dụ # 1 - Tạo một hàm tổng UDF đơn giản

Chúng tôi sẽ tạo hàm SUM của riêng mình trong excel bằng cách cộng hai số.

  • Để bắt đầu mã hóa, hãy bắt đầu từ “Chức năng” trong một trong các mô-đun.
  • Giống như cách chúng ta đặt tên cho macro tương tự, chúng ta cũng cần đặt tên cho Hàm của mình. Tên này được sử dụng làm tên công thức.

Không giống như chương trình con, chúng ta không thể chỉ cần nhấn enter để tạo một thủ tục, mà chúng ta cần đề cập đến các đối số ở đây.

Ví dụ: hãy xem cú pháp bên dưới của hàm trang tính SUM.

Số 1, Số 2 là các đối số của hàm SUM.

  • Tương tự, chúng ta cần đề cập đến các lập luận của mình.

Ở đây tôi đã khai báo các đối số là “x là Số nguyên” và “y là Số nguyên”. Vì chúng tôi thêm giá trị số, chúng tôi cần chỉ định kiểu dữ liệu là kiểu dữ liệu số.

Sau khi khai báo các đối số, tôi cũng đã gán kiểu trả về của Integer vì kết quả được đưa ra bởi Hàm “OurSum” cũng là một giá trị số.

  • Bây giờ bên trong hàm, chúng ta cần đề cập đến công thức mà chúng ta sẽ sử dụng. Ở đây chúng ta cần sử dụng hàm để bắt đầu.

Chúng tôi đã đề cập đến tên công thức “ OurSum ” nên thêm x và y.

  • Ok, lưu mã và chuyển đến trang tính.
  • Tôi đã nhập một vài số ở đây. Mở dấu bằng và bắt đầu nhập OurSum. Bạn có thể thấy tên công thức xuất hiện ở đây.
  • Giống như cách chúng ta chọn các ô, hãy chọn hai ô riêng biệt.
  • Sau khi chọn hai ô, nhấn phím enter để có kết quả.

Vì vậy, nó hoạt động giống hệt như hàm SUM thông thường của chúng ta.

  • Ok, bây giờ tôi sẽ thay đổi các con số.
  • Bây giờ một lần nữa, tôi sẽ áp dụng chức năng mà chúng tôi đã tạo.

Oh!!! Chúng tôi nhận được các giá trị lỗi ngoại trừ ô đầu tiên.

Chắc hẳn bạn đang nghĩ về lý do tại sao chúng tôi gặp lỗi.

Nếu bạn quan sát ô A2 và B2, chúng tôi có các giá trị 48170 và 21732. Vì chúng tôi đã gán kiểu dữ liệu là Số nguyên, nó không thể chứa bất kỳ số nào nhiều hơn 32767. Đây là lý do chúng tôi gặp lỗi excel là #NUM !.

Bây giờ tôi sẽ thêm các số nhỏ hơn 32767.

Trong hình trên, tất cả các số đều là số nguyên, tức là nhỏ hơn 32767.

Trong ô đầu tiên, chúng tôi có kết quả. Nhưng trong ô thứ hai, tức là ô C2, chúng tôi nhận được giá trị lỗi là #VALUE !.

Mặc dù cả hai số đều nhỏ hơn 32767, chúng tôi vẫn gặp lỗi.

Điều này là do chúng tôi đã khai báo kết quả cuối cùng cũng là Số nguyên.

Vì vậy, khi chúng ta thêm 16000 và 17229, chúng ta sẽ nhận được một giá trị như 33229, nhiều hơn giới hạn kiểu dữ liệu số nguyên là 32767. Vì vậy, kết quả cuối cùng là một giá trị lỗi.

Ví dụ # 2 - Tạo một hàm để kiểm tra các giá trị logic

Chúng ta sẽ tạo thêm một hàm để kiểm tra các giá trị logic. Chúng ta cần một hàm trả về “Tốt” nếu số> = 60 và chúng ta cần kết quả là “Xấu” nếu số là <= 50.

Bước 1: Khởi động Thủ tục hàm và đặt tên cho thủ tục.

Bước 2: Đưa đối số là TestScore là Integer.

Bước 3: Kết quả cuối cùng của chúng ta phải là “Tốt” hoặc “Xấu”, vì vậy kết quả phải ở dạng Chuỗi.

Bước 4: Đầu tiên, chúng ta cần kiểm tra xem điểm có> = 60 hay không. Sử dụng điều kiện IF để kiểm tra.

Bước 5: Nếu điểm kiểm tra> = 60, chúng ta cần hàm trả về kết quả là “Tốt”. Vì vậy, TestResult = “Tốt.”

Bước 6: Nếu điểm kiểm tra nhỏ hơn 60, thì kết quả của hàm sẽ là "Kém".

Ok, chúng tôi đã hoàn thành.

  • Lưu mã và chuyển đến trang tính.

Tôi đã nhập một vài số ở đây làm điểm kiểm tra.

  • Áp dụng chức năng chúng tôi đã tạo để đến kết quả.
  • Chọn ô và nhấn Enter.

Đây là tất cả những gì về UDF.

thú vị bài viết...