Mục lục:
Video: Hướng dẫn sử dụng Macro trong Excel hiệu quả nhất 2025
Trong chương trình VBA, một hàm trả về một giá trị. Bạn có thể thực hiện các thủ tục Function và gọi hàm trong Excel 2016. Chức năng, không giống như các thủ tục Sub, có thể được thực hiện theo hai cách:
-
Bằng cách gọi hàm từ một thủ tục phụ hoặc thủ tục hàm
-
Bằng cách sử dụng hàm trong công thức bảng tính
Hãy thử chức năng đơn giản này. Nhập nó vào một mô-đun VBA:
Chức năng CubeRoot (số) CubeRoot = số ^ (1/3) Kết thúc Chức năng
Chức năng này khá wimpy; nó chỉ đơn giản tính toán gốc rễ của số được truyền cho nó như là đối số của nó. Tuy nhiên, nó cung cấp một điểm khởi đầu cho việc hiểu các chức năng. Nó cũng minh hoạ khái niệm quan trọng về các chức năng: làm thế nào để trả lại giá trị. (Bạn nhớ rằng một hàm trả về một giá trị, phải không?)
Chú ý rằng một dòng mã tạo nên thủ tục Function này thực hiện tính toán. Kết quả của toán học (số với sức mạnh 1/3) được gán cho biến CubeRoot. Không phải tình cờ, CubeRoot cũng là tên của hàm. Để báo cho hàm biết giá trị trả về, bạn gán giá trị đó cho tên của hàm.
Gọi chức năng từ một thủ tục phụ
Bởi vì bạn không thể thực hiện trực tiếp hàm, bạn phải gọi nó từ một thủ tục khác. Nhập thủ tục đơn giản sau trong cùng mô-đun VBA có chứa chức năng CubeRoot:
Đây là những gì đang diễn ra: Chức năng CubeRoot được thực hiện, và nó nhận được một đối số là 125. Tính toán được thực hiện bởi mã chức năng (sử dụng giá trị được truyền như một đối số), và giá trị trả lại của hàm được gán cho Ans biến. Hàm MsgBox sau đó sẽ hiển thị giá trị của biến Ans.Hãy thử thay đổi đối số được truyền vào hàm CubeRoot và chạy lại macro CallerSub một lần nữa. Nó hoạt động giống như nó nên - giả sử rằng bạn cung cấp cho các chức năng một đối số hợp lệ (một số dương).
Nhân tiện, thủ tục CallerSub có thể được đơn giản hóa một chút. Biến Ans không thực sự cần thiết trừ khi mã của bạn sẽ sử dụng biến đó sau này. Bạn có thể sử dụng câu lệnh đơn này để có kết quả tương tự:
MsgBox CubeRoot (125)
Gọi một hàm từ một công thức bảng
Bây giờ là lúc gọi thủ tục VBA Function này từ một công thức bảng tính.Kích hoạt một bảng tính trong cùng một bảng tính chứa các định nghĩa chức năng CubeRoot. Sau đó, nhập công thức sau vào bất kỳ ô nào:
= CubeRoot (1728)
Tế bào hiển thị 12, thực sự là gốc rễ của 1, 728.
Như bạn mong đợi, bạn có thể sử dụng một tham chiếu ô như đối số cho hàm CubeRoot. Ví dụ: nếu ô A1 chứa giá trị, bạn có thể nhập
= CubeRoot (A1)
. Trong trường hợp này, hàm trả về số đã thu được bằng cách tính toán giá trị gốc của khối của giá trị trong A1. Bạn có thể sử dụng chức năng này bất kỳ số lần trong bảng tính. Giống như các chức năng tích hợp của Excel, các chức năng tùy chỉnh của bạn xuất hiện trong hộp thoại Chèn Chức năng. Nhấp vào nút công cụ Chèn Chức năng, và chọn loại Người dùng Xác định. Hộp thoại Chèn Chức năng liệt kê chức năng rất riêng của bạn. Chức năng CubeRoot xuất hiện trong phần User Defined của hộp thoại Insert Function.
Nếu bạn muốn hộp thoại Chèn Chức năng để hiển thị mô tả chức năng, hãy làm theo các bước sau:
Chọn Nhà phát triển → Mã → Macros.Excel sẽ hiển thị hộp thoại Macro, nhưng CubeRoot không xuất hiện trong danh sách. (CubeRoot là một thủ tục Function, và danh sách này chỉ hiển thị các thủ tục phụ.) Đừng băn khoăn.
-
Nhập từ CubeRoot vào hộp Macro Name.
Nhấp vào nút Tùy chọn.
-
Nhập mô tả chức năng trong hộp Mô tả.
-
Nhấn OK để đóng hộp thoại Macro Options.
-
Đóng hộp thoại Macro bằng cách nhấp vào nút Hủy.
-
Văn bản mô tả này bây giờ xuất hiện trong hộp thoại Chèn Chức năng.
-
Kiểm tra các chức năng CubeRoot được sử dụng trong các công thức bảng.
Sử dụng chức năng CubeRoot trong các công thức.