Dưới đây chúng ta sẽ xem xét một chương trình trong Excel VBA tạo một Hàm do Người dùng Xác định. Excel có một bộ sưu tập lớn các hàm. Trong hầu hết các tình huống, những chức năng đó là đủ để hoàn thành công việc. Nếu không, bạn có thể tạo hàm của riêng mình được gọi là Hàm do Người dùng Xác định hoặc hàm Excel tùy chỉnh. Bạn có thể truy cập một Hàm do Người dùng Xác định giống như bất kỳ hàm Excel nào khác.

Chúng tôi muốn tạo một hàm có tên là SUMEVENNUMBERS tìm tổng các số chẵn của một dải ô được chọn ngẫu nhiên.

Tình huống:

User Defined Function in Excel VBA

Các chức năng do người dùng định nghĩa cần được đặt vào một mô-đun.

  1. Mở Trình soạn thảo Visual Basic và nhấp vào Chèn, Mô-đun.

  2. Thêm dòng mã sau:

Function SUMEVENNUMBERS(rng As Range)

Tên của Hàm của chúng tôi là SUMEVENNUMBERS. Phần giữa các dấu ngoặc có nghĩa là chúng tôi cung cấp cho Excel VBA một phạm vi làm đầu vào. Chúng tôi đặt tên cho phạm vi của mình là rng, nhưng bạn có thể sử dụng bất kỳ tên nào.

  1. Tiếp theo, chúng ta khai báo một đối tượng Range và gọi nó là ô.

Dim cell As Range
  1. Chúng tôi muốn kiểm tra từng ô trong một phạm vi được chọn ngẫu nhiên (phạm vi này có thể có kích thước bất kỳ). Trong Excel VBA, bạn có thể sử dụng vòng lặp Cho Mỗi Tiếp theo cho việc này. Thêm các dòng mã sau:

For Each cell In rng

Next cell

Lưu ý: ô được chọn ngẫu nhiên ở đây, bạn có thể sử dụng bất kỳ tên nào.

  1. Tiếp theo, chúng tôi kiểm tra từng giá trị trong phạm vi này xem nó có chẵn hay không. Chúng tôi sử dụng toán tử Mod cho việc này. Toán tử Mod đưa ra phần còn lại của một phép chia. Vì vậy, 7 mod 2 sẽ cho 1. 7 được chia cho 2 (3 lần) để có số dư là 1. Nói như vậy, thật dễ dàng để kiểm tra xem một số có chẵn hay không. Chỉ khi phần dư của một số chia cho 2 là 0 thì số đó là số chẵn. 8 mod 2 cho 0, 8 chia cho 2 đúng 4 lần, và do đó 8 là số chẵn. Thêm câu lệnh If sau vào vòng lặp For Each Next.

If cell.Value Mod 2 = 0 Then

End If
  1. Chỉ khi câu lệnh này đúng, chúng tôi mới thêm giá trị vào SUMEVENNUMBERS.

Thêm dòng mã sau vào câu lệnh If.

SUMEVENNUMBERS = SUMEVENNUMBERS + cell.Value
  1. Đừng quên kết thúc hàm (bên ngoài vòng lặp).

End Function
  1. Bây giờ bạn có thể sử dụng hàm này, giống như bất kỳ hàm Excel nào khác, để tìm tổng các số chẵn của một phạm vi được chọn ngẫu nhiên.

Kết quả:

User Defined Function Result

Làm tốt! Đó là cách các Hàm do Người dùng Xác định trong Excel VBA dễ dàng.

Lưu ý: chức năng này chỉ có sẵn trong sổ làm việc này.