Tạo hàm mới bằng VBA

Một phần của tài liệu Giáo trình Excel nâng cao (Trang 80 - 83)

IV. Xây dựng hàm mới trong Excel bằng VBA

2. Tạo hàm mới bằng VBA

a. Tạo hàm mới bằng VBA

Excel cho phép xây dựng các hàm mới bằng VBA, và đặc biệt, việc sử dụng các hàm mới này không khác gì so với việc sử dụng các hàm có sẵn của Excel. Hàm mới luôn mang đặc tính:

 Trả về một giá trị nào đó, tương tự như hàm có sẵn trong Excel;

 Hàm mới có thể sử dụng như một chương trình con trong VBA, nghĩa là nó vừa

có thể sử dụng trong bảng tính (trong các ô), đồng thời có thể sử dụng trong các chương trình viết bằng VBA.

b. Cấu trúc hàm

Hàm là một chương trình con dạng Function. Khác với Macro, hàm là chương trình con có giá trị trả về và có thể có tham số.

Khi tạo hàm mới, người sử dụng cần phải tuân thủ theo dạng thức khai báo như sau:

[Public/Private] Function Tên_hàm([DSách_tham_số])[as kiểu_dữ_liệu]

[Câu_lệnh]

[Tên_hàm = biểu_thức]

[Exit Function]

[Câu_lệnh]

[Tên_hàm = biểu_thức]

End Function

Trong đó:

Public: (tuỳ chọn) là từ khoá biểu thị phạm vi của hàm, hàm có thể được sử

dụng ở bất kỳ đâu trong tất cả các dự án VBA hiện có. Khi có từ khoá Public, tên hàm sẽ được hiển thị trong danh sách hàm của Excel.

Private: (tuỳ chọn) là từ khoá biểu thị phạm vi của hàm, hàm chỉ có thể được

sử dụng bên trong mô-đun có chứa hàm đó. Khi có từ khoá Private, tên hàm sẽ

Trang 81/ 89

không được hiển thị trong danh sách hàm của Excel, nhưng người sử dụng vẫn

có thể dùng hàm này trong bảng tính một cách bình thường.

Chú ý Nếu không khai báo phạm vi cho hàm (từ khoá Public/Private), thì mặc định, hàm sẽ có phạm vi là Public.

Function: (bắt buộc) là từ khoá báo hiệu bắt đầu một hàm.

Tên_hàm: (bắt buộc) là tên của hàm, cách đặt tên hàm tương tự như cách đặt

tên của biến.

Tên_hàm sẽ được sử dụng như là biến trong toàn bộ hàm, khi hàm kết thúc giá trị trả về của hàm chính là giá trị đã gán cho biến Tên_hàm cuối cùng.

Danh_sách_tham_số: (tuỳ chọn) là danh sách các tham số đầu vào của hàm.

Các tham số được phân cách với nhau bằng dấu phẩy.

Kiểu_dữ_liệu: (tuỳ chọn) quy định kiểu giá trị trả về của hàm. Nếu không quy

định

kiểu dữ liệu, hàm sẽ có kiểu dữ liệu mặc định là Variant.

Exit Function: (tuỳ chọn) là câu lệnh dùng để kết thúc hàm ngay lập tức (cho

dù phía sau câu lệnh này vẫn còn các khối lệnh khác).

End Function: (bắt buộc) là từ khoá báo hiệu kết thúc một hàm.

c. Tạo hàm mới

Để tạo một hàm mới, thực hiện theo các bước sau:

1. Khởi động VBAIDE. Trong trình đơn Tools, chọn mục Macro/Visual Basic Editor;

2. Trong trình đơn Insert, chọn mục Module để tạo một mô-đun mới, nơi sẽ chứa hàm do người dùng định nghĩa.

3. Trong trình đơn Insert, chọn mục Procedure… để hiển thị hộp thoại Add Procedure. Sau đó điền tên hàm vào mục Name, chọn kiểu chương trình con là Function và phạm vi là Public. Cuối cùng chọn OK;

Hình 6.6

Trang 82/ 89

4. Chương trình sẽ tự động phát sinh đoạn mã lệnh như sau:

Public Function Dien_Tich()

End Function

5. Thay đoạn mã lệnh trên bằng đoạn mã lệnh thích hợp.

Public Function Dien_Tich(Rong As Double, Cao As Double) As Double

‘Ham tinh dien tich hinh chu nhat

Dien_Tich = Rong * Cao

End Function

6. Chọn mục Close and Return to Microsoft Excel để quay trở về màn hình chính của Excel.

7. Lúc này, hàm mà ta vừa xây dựng, có tên là Dien_Tich, đã có thể được sử dụng bình

thường như các hàm khác của Excel.

d. Hàm trả về lỗi và cách khắc phục

Hàm trả về lỗi: Một số giá trị lỗi cũng như các hằng số tương ứng trong VBA

GIÁ TRỊ

LỖI HẰNG

SỐ GIẢI THÍCH

#DIV/0! xlErrDiv0 Công thức có chia một số cho 0. Lỗi này cũng phát sinh

khi chia cho một ô trống.

#N/A xlErrNA Lỗi này biểu thị dữ liệu không có.

#NAME? xlErrName Hàm có tên mà Excel không thể nhận dạng được. Thường

xảy ra khi nhập tên hàm sai, hoặc đã thay đổi tên hàm nhưng chưa cập nhật trong bảng tính.

#NULL! xlErrNull Giá trị rỗng, chẳng hạn như tìm giao của hai vùng không

giao nhau.

#NUM! xlErrNum Có vấn đề với giá trị nào đó. Ví dụ như người dùng nhập

vào số âm, trong khi chỉ chấp nhận số dương.

#REF! xlErrRef Tham chiếu đến ô không tồn tại. Điều này thường xảy ra

khi ô đã bị xoá khỏi bảng tính.

Trang 83/ 89

#VALUE! xlErrValue Hàm có chứa tham số hoặc công thức không phù hợp về

kiểu dữ liệu

Trong quá trình xây dựng một dự án phần mềm, việc gặp các lỗi là không thể tránh khỏi. Vì vậy, việc tìm và xử lý lỗi là điều tất yếu. Trình tự của công việc này như sau:

1. Tìm và phân loại lỗi.

2. Tìm kiếm vị trí mã lệnh phát sinh lỗi.

3. Sửa lỗi.

4. Ngăn chặn lỗi có thể xảy ra trong tương lai.

Một phần của tài liệu Giáo trình Excel nâng cao (Trang 80 - 83)

Tải bản đầy đủ (PDF)

(89 trang)