Mặc dù Excel đã có hàng trăm hàm tích hợp sẵn như SUM, VLOOKUP, LEFT, v.v., nhưng các hàm tích hợp sẵn có thường không đủ để thực hiện các tác vụ khá phức tạp. Tuy nhiên, đừng lo lắng vì bạn chỉ cần tự tạo các chức năng cần thiết.
Bươc chân
Bước 1. Tạo một sổ làm việc mới hoặc mở sổ làm việc mà bạn muốn xử lý bằng các Hàm do Người dùng Xác định (UDF)
Bước 2. Mở Visual Basic Editor trong Microsoft Excel qua Công cụ-> Macro-> Visual Basic Editor (hoặc nhấn phím tắt Alt + F11)
Bước 3. Nhấp vào nút Mô-đun để thêm một mô-đun mới vào trang tính của bạn
Bạn có thể tạo UDF trong sổ làm việc mà không cần thêm mô-đun mới, nhưng chức năng này sẽ không hoạt động trong các trang tính khác trong cùng một sổ làm việc.
Bước 4. Tạo "đầu" hoặc "nguyên mẫu" của chức năng của bạn
Nguyên mẫu hàm phải tuân theo cấu trúc sau:
chức năng công khai "Tên chức năng" (tham số1 Như kiểu1, tham số2 Là kiểu2) Như kiểu kết quả.
Nguyên mẫu có thể có nhiều hàm nhất có thể và kiểu của chúng có thể là tất cả các kiểu dữ liệu cơ bản hoặc kiểu đối tượng Excel ở dạng Phạm vi. Bạn có thể coi các tham số là “người mở” (toán tử) mà hàm sẽ hoạt động. Ví dụ, khi bạn viết SIN (45) để tính sin 45 độ, số 45 sẽ được lấy làm tham số. Sau đó, mã hàm sẽ sử dụng các giá trị đó để thực hiện các phép tính và hiển thị kết quả.
Bước 5. Thêm mã chức năng để đảm bảo rằng bạn: 1) sử dụng giá trị được cho bởi tham số; 2) chuyển kết quả cho tên hàm; và 3) đóng hàm bằng câu "hàm kết thúc"Học lập trình bằng VBA hoặc bất kỳ ngôn ngữ nào khác cần rất nhiều thời gian và hướng dẫn chi tiết. May mắn thay, các hàm này thường có các khối mã nhỏ và không sử dụng nhiều các tính năng của ngôn ngữ lập trình. Dưới đây là một số yếu tố của ngôn ngữ VBA có thể được sử dụng:
- Khối If (nếu), cho phép bạn thực thi một phần mã chỉ khi điều kiện được đáp ứng. Như một ví dụ:
- . Bạn có thể bỏ từ khóa Khác cùng với phần thứ hai của mã vì nó là tùy chọn.
- Khối Do (do), thực thi một phần của mã While hoặc Until khi hoặc cho đến khi điều kiện được đáp ứng. Như một ví dụ:
- . Cũng lưu ý dòng thứ hai "khai báo" biến. Bạn có thể thêm các biến vào mã của mình để sử dụng sau này. Các biến hoạt động như giá trị tạm thời trong mã. Cuối cùng, hãy coi phần khai báo hàm là BOOLEAN, là kiểu dữ liệu chỉ cho phép các giá trị TRUE hoặc FALSE. Phương pháp xác định số nguyên tố này không phải là tối ưu, nhưng mã đã được viết theo cách dễ đọc.
- Đối với khối (to), thực thi một lượng mã nhất định. Như một ví dụ:
- Một giá trị không đổi được nhập trực tiếp vào công thức ô. Trong trường hợp này, văn bản (chuỗi) phải được trích dẫn.
- Tham chiếu ô, chẳng hạn B6 hoặc phạm vi như A1: C3 (tham số phải là kiểu dữ liệu "Phạm vi")
-
Một hàm khác được bao gồm trong hàm của bạn (hàm của bạn cũng có thể được bao gồm trong một hàm khác), ví dụ: = Factorial (MAX (D6: D8))
Bước 7. Đảm bảo kết quả là chính xác
Sử dụng nó nhiều lần để đảm bảo rằng hàm có thể xử lý các giá trị tham số khác nhau một cách chính xác:
Lời khuyên
- Khi viết các khối mã trong cấu trúc điều khiển như If, For, Do, v.v., hãy đảm bảo bạn thụt lề (chèn một chút đường viền bên trái vào bên trong) khối mã bằng cách nhấn phím cách nhiều lần hoặc tab. Điều này sẽ làm cho mã dễ hiểu hơn và lỗi sẽ dễ dàng tìm thấy hơn nhiều. Ngoài ra, việc gia tăng chức năng trở nên dễ thực hiện hơn.
- Nếu bạn không biết cách viết mã cho các hàm, hãy đọc bài viết Cách viết Macro đơn giản trong Microsoft Excel.
- Đôi khi, các hàm không cần tất cả các tham số để tính toán kết quả. Trong trường hợp này, bạn có thể sử dụng từ khóa Tùy chọn trước tên tham số trong tiêu đề hàm. Bạn có thể sử dụng hàm IsMissing (tên_tham_số) trong mã của mình để xác định xem một tham số có được gán giá trị hay không.
- Sử dụng các tên không sử dụng làm hàm trong Excel để không có hàm nào bị ghi đè và xóa.
- Excel có nhiều hàm tích hợp và hầu hết các phép tính có thể được thực hiện bằng cách sử dụng các hàm tích hợp này, riêng lẻ hoặc tất cả cùng một lúc. Đảm bảo rằng bạn đã xem qua danh sách các chức năng có sẵn trước khi bắt đầu tự viết mã. Việc thực thi có thể được thực hiện nhanh hơn nếu bạn sử dụng các chức năng được tích hợp sẵn.
Cảnh báo
- Vì lý do bảo mật, nhiều người vô hiệu hóa macro. Đảm bảo rằng bạn thông báo cho người nhận sổ làm việc của mình rằng sổ làm việc đã gửi có các macro và những macro này sẽ không gây hại cho máy tính của họ.
- Hàm được sử dụng trong bài viết này không phải là cách tốt nhất để giải quyết vấn đề liên quan. Ví dụ được sử dụng để giải thích việc sử dụng các cấu trúc điều khiển ngôn ngữ.
- VBA, giống như các ngôn ngữ khác, có một số cấu trúc điều khiển khác ngoài Do, If và For. Cấu trúc được thảo luận ở đây chỉ mô tả những gì có thể được thực hiện trong mã nguồn của hàm. Có rất nhiều hướng dẫn trên internet có thể được sử dụng để giúp bạn học VBA.
Kết quả khóa học hàm công khai (Dưới dạng giá trị nguyên) Dưới dạng chuỗi
Nếu giá trị> = 5 Thì
Kết quả khóa học = "Được chấp nhận"
Khác
Kết quả khóa học = "Bị từ chối"
Kết thúc nếu
Chức năng kết thúc
Lưu ý các phần tử trong khối mã If:
IF điều kiện THEN mã ELSE END IF
Chức năng công cộng BilPrima (giá trị là số nguyên) là Boolean
Dim i As Integer
i = 2
BilPrima = Đúng
Làm
Nếu giá trị / i = Int (giá trị / i) Thì
BilPrima = Sai
Kết thúc nếu
i = i + 1
Vòng lặp While i <value And NumberPrima = True
Kết thúc chức năng
Nhìn lại các phần tử:
DO mã điều kiện LOOP WHILE / UNTIL
Giai thừa hàm công khai (giá trị là số nguyên)
Làm mờ kết quả As Long
Dim i As Integer
Nếu giá trị = 0 Thì
kết quả = 1
ElseIf value = 1 Thì
kết quả = 1
Khác
kết quả = 1
Đối với i = 1 Đến giá trị
result = kết quả * i
Kế tiếp
Kết thúc nếu
Giai thừa = kết quả
Chức năng kết thúc
Nhìn lại các phần tử:
Biến FOR = giới hạn dưới ĐẾN giới hạn trên của mã NEXT
. Ngoài ra, hãy lưu ý phần tử ElseIf bổ sung trong câu lệnh If, cho phép bạn thêm nhiều tùy chọn hơn vào mã đang được thực thi. Cuối cùng, hãy xem xét hàm "kết quả" và biến được khai báo là Long. Kiểu dữ liệu Long cho phép các giá trị lớn hơn nhiều so với kiểu Integer.
Dưới đây là mã cho một chức năng chuyển đổi các số nhỏ thành từ.
Bước 6. Quay lại sổ làm việc và sử dụng hàm bằng cách viết ký hiệu “bằng” (=) theo sau là tên của hàm trong ô
Viết dấu ngoặc mở (“(“) sau tên hàm, sử dụng dấu hôn mê để tách các tham số và kết thúc bằng dấu đóng ngoặc (“)”). Như một ví dụ:
= NumberToLetter (A4)
. Bạn cũng có thể sử dụng các công thức tự chế bằng cách tìm kiếm chúng trong các danh mục Đã xác định người dùng bên trong tùy chọn Chèn Công thức. Bạn chỉ cần nhấp vào nút Fx ở bên trái của thanh công thức. Có ba loại biểu mẫu tham số trong các hàm: