Chào các bạn,
Khi sử dụng VBA trong excel , chúng ta thường nghĩ tới việc sử dụng userform để tạo form nhập dữ liệu. Nhưng việc thiết lập userform thường khá phức tạp và sử dụng nhiều code. Đối với những bạn mới tiếp cận về VBA thì việc sử dụng userform gặp nhiều khó khăn.
Trong bài viết này mình sẽ hướng dẫn các bạn cách sử dụng SheetForm (form tạo trên Sheet) để sử dụng tương tự như userform. Phạm vi bài viết gồm:
Xem nhanh
Trong bài 4, chúng ta đã tìm hiểu cách lưu nội dung từ SheetForm Phiếu thu sang Bảng kê, và câu hỏi ở cuối bài chính là nội dung chúng ta sẽ giải quyết ở bài này:
Đây chính là những lỗi thường gặp nhất khi sử dụng SheetForm. Vì vậy kỹ năng bẫy những lỗi này là rất cần thiết cho chúng ta trong quá trình làm việc trên VBA.
Tìm hiểu ngay: khóa học lập trình VBA trong excel
Để xác định phiếu có trùng không (tương đương với việc phiếu đã được lưu chưa), chúng ta sử dụng hàm COUNTIF như sau:
=COUNTIF(Bang_Ke!$B$4:$B$32,Phieu_Thu!$B$4)
Giải thích nội dung hàm:
Bang_Ke!$B$4:$B$32 là vùng chứa nội dung Số phiếu trong Bảng kê
Phieu_Thu!$B$4 là số phiếu trong Phiếu thu
Như vậy hàm COUNTIF sẽ xác định xem số phiếu trong phiếu thu đã xuất hiện trong cột Số phiếu trong Bảng kê chưa.
Kết quả > 0 thì số phiếu đã xuất hiện (đã trùng, đã lưu)
Kết quả = 0 thì số phiếu chưa xuất hiện (chưa lưu)
Trong cửa sổ VBA, với Sub Luu_Phieu_Thu chúng ta viết code như sau:
Các bạn có thể thấy phần ghi chú Bẫy lỗi lưu trùng phiếu, trong đó ta thông qua việc sử dụng hàm IF trong VBA để biện luận:
Lưu ý là khi mở đầu bằng IF thì kết thúc phải có End IF (vị trí End If nằm sau dòng msgbox “Hoan thanh”)
Để xác định nội dung yêu cầu đã có dữ liệu chưa, chúng ta làm như sau:
Tại ô C5 của sheet Điều kiện, dùng hàm:
=IF(OR(Phieu_Thu!B6=””,Phieu_Thu!B8=””,Phieu_Thu!B10=””,Phieu_Thu!B12=””,Phieu_Thu!B14=””),0,1)
Từng đối tượng trong hàm OR sẽ là một nội dung yêu cầu phải nhập dữ liệu. Nếu bất kỳ yêu cầu nào chưa nhập ( =”” ) thì sẽ cho kết quả = 0, còn nếu tất cả các yêu cầu đều đã nhập thì sẽ cho kết quả = 1
Trong cửa sổ VBA, với Sub Luu_Phieu_Thu chúng ta viết code như sau:
* Lưu ý:
Để rèn luyện kỹ năng bẫy lỗi, chúng ta cần luyện tập nhiều để tùy biến theo từng trường hợp.
1. Ưu điểm:
2. Nhược điểm:
3. Ứng dụng
Ứng dụng trong nhiều trường hợp cần đến làm việc trên Form như:
Cảm ơn các bạn đã theo dõi Seri bài viết này.
Chúc các bạn ứng dụng SheetForm vào công việc được hiệu quả.
Đừng bỏ lỡ: khóa học Excel kế toán với các chuyên gia