1. Trang chủ
  2. » Công Nghệ Thông Tin

Giáo trình hướng dẫn các trợ giúp về cú pháp trong quá trình viết mã lệnh khai báo biến trong VB p9

5 7 0

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 5
Dung lượng 855,36 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Chương trình được dịch theo từng dòng lệnh. Mỗi khi người lập trình nhấn F8 thì chương trình sẽ thực thi một dòng lệnh, cứ như thế cho đến khi kết thúc chương trình. Nếu tại một dòng lệnh có lời gọi đến chương trình con khác thì khi tiếp tục thực hiện với Step Into, con trỏ biên dịch sẽ được nhảy đến dòng đầu tiên của chương trình con được gọi. Chạy từng bước với khối lệnh (Step Over) Nút lệnh: . Phím tắt: SHIFT+F8....

Trang 1

CHƯƠNG I I: CƠ BẢN VỀ NGÔN NGỮ LẬP TRÌNH VISUAL BASIC 

93

Chạy từng bước (Step Into) 

Nút lệnh: Phím tắt: F8

Chương trình được dịch theo từng dòng lệnh Mỗi khi người lập trình nhấn F8 thì chương trình

sẽ thực thi một dòng lệnh, cứ như thế cho đến khi kết thúc chương trình

Nếu tại một dòng lệnh có lời gọi đến chương trình con khác thì khi tiếp tục thực hiện với Step Into, con trỏ biên dịch sẽ được nhảy đến dòng đầu tiên của chương trình con được gọi

Chạy từng bước với khối lệnh (Step Over) 

Nút lệnh: Phím tắt: SHIFT+F8

Phương pháp này tương tự như chạy từng bước (Step Into) nhưng việc thực thi một chương trình con được coi như thực thi một dòng lệnh Vì vậy nếu trong chương trình hiện tại có một lời gọi chương trình con thì chương trình con sẽ được thực thi như một lệnh và do đó con trỏ biên dịch sau đó sẽ nhảy tới dòng lệnh tiếp theo của chương trình con hiện tại

Chạy ra ngoài chương trình con (Step Out) 

Nút lệnh: Phím tắt: CTRL+SHIFT+F8

Nếu con trỏ biên dịch đang ở trong một chương trình con, thì lệnh biên dịch Step Out sẽ dịch toàn bộ các lệnh còn lại trong chương trình con đó và đưa con trỏ lệnh tới vị trí tiếp sau vị trí có lời gọi chương trình con

Chạy tới vị trí con trỏ chuột (Run to Cursor) 

Nút lệnh: Phím tắt: CTRL+F8

Chạy từ vị trí con trỏ biên dịch hiện tại tới vị trí có con trỏ soạn thảo Phương pháp này thường được dùng khi người lập trình muốn thực thi qua toàn bộ những khối lệnh lặp đến dòng lệnh

mà mình cần quan tâm

Tạo điểm dừng (Break point) khi chạy chương trình 

Nút lệnh: Phím tắt: F9

Với phương pháp này, khi người lập trình thực thi chương trình, trình biên dịch sẽ dừng lại tại các vị trí dòng lệnh tương ứng đã được đánh dấu trước Để tạo điểm dừng cho một dòng lệnh,

đưa con trỏ soạn thảo chọn dòng lệnh tương ứng và nhấn phím F9

Điểm dừng (Break point)

Vị trí con trỏ biên dịch hiện tại

Trang 2

94

Nếu muốn xoá điểm dừng cho một dòng lệnh, đưa con trỏ soạn thảo đến dòng lệnh đó có điểm

dừng và nhấn phím F9 Nếu muốn xoá hết tất cả các điểm dừng đã tạo, nhấn phím tắt CTRL+SHIFT+F9

14.2.3 Cửa sổ trợ giúp gỡ rối

Ngoài việc gỡ rối sử dụng các phương pháp thực thi chương trình, VBAIDE còn hỗ trợ người lập trình các công cụ dùng để thử nghiệm các dòng lệnh và kiểm soát các biến trong chương trình Đây là công cụ rất hữu ích giúp người lập trình có thể theo dõi và từ đó phát hiện ra lỗi trong chương trình, nhất là các lỗi phát sinh do giải thuật

Cửa sổ trung gian (Immediate Window).  

Để hiển thị cửa số trung gian, trong VBAIDE chọn trình đơn View Ö Immediate window, hoặc sử dụng phím tắt CTRL+G:

Hình III-28: Cửa sổ trung gian

Với cửa sổ trung gian, người dùng có thể:

Ø Gõ một dòng lệnh vào và nhấn ENTER để thực thi dòng lệnh đó trực tiếp từ cửa số trung gian

Ø Hiển thị giá trị của biểu thức lên cửa sổ trong quá rình gỡ rối Để hiển thị giá trị của biểu thức, trong cửa sổ trung gian gõ “?Biểu_Thức” rồi nhấn phím ENTER

Ø Người lập trình có thể in giá trị của biểu thức ra cửa sổ trung gian từ mã lệnh chương trình sử dụng cú pháp:

Debug Print <danh_sách_các_biểu_thức>

Ø Thay đổi giá trị của một biến trong khi chạy chương trình từ cửa sổ trung gian Chẳng hạn như trong chương trình đang thực thi có biến a, người lập trình có thể thay đổi giá trị của biến a thành 5 bằng cách gõ a=5 trong cửa sổ trung gian và nhấn phím ENTER

Cửa sổ theo dõi (Watch Window). 

Để hiển thị cửa sổ theo dõi, trong VBA IDE chọn trình đơn View Ö Watch Window

Hình III-29: Cửa sổ theo dõi

Cửa sổ này thường được sử dụng để theo dõi sự biến đổi của các biến hoặc các biểu thức trong quá trình mã lệnh được thực thi Ngoài ra, trong cửa sổ theo dõi, người lập trình có thể thay đổi giá trị cho biến trong lúc đang thực thi chương trình Cần lưu ý là giá trị của biến/biểu thức cần theo dõi chỉ được hiển thị khi trình biên dịch đang thực thi một dòng lệnh nằm trong phạm vi hiệu lực của biến/biểu thức đó Ví dụ như biến a trong chương trình con VD1 chỉ hiển thị giá trị

Trang 3

CHƯƠNG I I: CƠ BẢN VỀ NGÔN NGỮ LẬP TRÌNH VISUAL BASIC 

95

trong cửa sổ theo dõi khi trình biên dịch đang thực thi một dòng lệnh nằm trong chương trình con VD1 đó

Để thêm một biểu thức vào trong danh sách các biểu thức đang được theo dõi của cửa sổ Watch, thực hiện theo các bước sau:

1 Trong VBA IDE, chọn trình đơn Debug Ö Add Watch để hiển thị hộp thoại Add Watch

2 Nhập biểu thức cần theo dõi trong mục Expression

3 Chọn tên mô-đun và tên của chương trình con, nơi có chứa biến/biểu thức cần theo dõi

trong mục Module và Procedure

4 Nhấn ENTER hoặc chọn OK để thêm vào cửa sổ theo dõi

GỢI Ý Để không phải thực hiện các bước và , trước khi hiển thị của sổ theo dõi, cần đánh dấu chọn biến/biểu thức sẽ được theo dõi Khi đó, các mục Expression, Module

và Procedure sẽ được tự động điền các giá trị tương ứng

Hình III-30: Thêm biểu thức vào cửa sổ theo dõi

14.3 Bẫy lỗi trong VBAIDE

Như đã đề cập ở trên, khi gặp phải những lỗi phát sinh lúc thực thi chương trình sẽ gây ra những kết quả không thể tiên đoán được hoặc chương trình sẽ dừng lại và sẽ hiển thị thông báo lỗi rất phức tạp Nếu đứng về phía người sử dụng chương trình thì những hộp thoại như vậy thường gây ra sự lúng túng khi sử dụng chương trình Để tránh những hiện tượng như vậy, người lập trình cần phải thực hiện các kỹ thuật bẫy lỗi trong khi viết chương trình

Bẫy lỗi thực chất là viết các đoạn mã lệnh chặn các thông báo lỗi mặc định của hệ thống và hướng dẫn chương trình cách thức xử lý lỗi đã chặn được Các đoạn chương trình xử lý lỗi còn được gọi là bộ xử lý lỗi (error-handler) VBA có cung cấp các câu lệnh nhằm giúp người lập trình thực hiện bẫy lỗi trong chương trình của mình

14.3.1 Câu lệnh On Error

Trang 4

96

Câu lệnh On Error sẽ thực bật chế độ bẫy lỗi trong chương trình và xác định nơi sẽ thực hiện

xử lý các lỗi khi lỗi xảy ra Để tắt chế độ bẫy lỗi, người lập trình cũng dùng chính câu lệnh này Các dạng cú pháp của câu lệnh này như sau:

On Error GoTo <Label> Bật chế độ bẫy lỗi Khi có lỗi xảy ra, chương trình sẽ được tự động nhảy

đến dòng lệnh có nhãn <Label> để tiếp tục thực thi mã lênh Đây chính

là nơi chứa bộ xử lý lỗi của chương trình Cần lưu ý là phần mã lệnh có nhãn <Label> phải nằm trong cùng một chương trình với câu lệnh On Error Khi dùng bẫy lỗi kiểu này, trước nhãn <Label> thường có lệnh Exit Sub hoặc Exit Function (tuỳ thuộc chương trình con được bẫy lỗi) nhằm tránh thực thi bộ xử lý lỗi trong trường hợp lỗi không xảy ra

On Error Resume Next Bật chế độ bẫy lỗi Khi có lỗi xảy ra, chương trình sẽ tự động nhảy đến

dòng lệnh ngay sau dòng lệnh gây lỗi để tiếp tục thực thi mã lệnh Câu lệnh này thường được sử dụng khi có câu lệnh truy xuất đến một đối tượng nào đó Để nắm rõ lỗi đã phát sinh, câu lệnh này thường được sử dụng kết hợp với đối tượng Error (xem thêm mục “Đối tượng Err” trang 97)

On Error GoTo 0 Tắt chế độ bẫy lỗi Khi thực hiện dòng lệnh này, các lỗi đã phát sinh

trước đó sẽ được xoá và đồng thời kể từ sau dòng lệnh này, các lỗi sẽ không được chặn lại và xử lý nữa, và như vậy chương trình có thể ngưng hoạt động nếu có lỗi thực thi xảy ra

Khi sử dụng câu lệnh On Error GoTo <Label>, ngay trước nhãn <Label> thường có lệnh Exit Sub hoặc Exit Function (tuỳ thuộc chương trình con được bẫy lỗi) nhằm tránh thực thi bộ xử lý lỗi trong trường hợp lỗi không xảy ra Vì vậy, khuôn mẫu của các chương trình có

bộ xử lý lỗi có thể được tham khảo thao đoạn mã lệnh sau:

Sub InitializeMatrix(Var1, Var2, Var3, Var4)

On Error GoTo Bộ_xử_lý_lỗi

Exit Sub

Bộ_xử_lý_lỗi:

Resume Next

End Sub

Đoạn chương trình sau đây sẽ thực hiện truy xuất đến một tệp, sau đó đóng tệp đó lại Nếu trong quá trình thao tác có lỗi xảy ra, chương trình sẽ được tự động nhảy đến dòng lệnh phía sau nhãn lbErr để hiển thị thông báo về lỗi đã xảy ra cho người sử dụng

Sub SolveErrorExample()

On Error GoTo lbErr

Open "C:\fileABC.txt" For Input As 1

Close 1

Exit Sub

lbErr:

MsgBox "Loi xay ra: " & Err.Description, vbCritical, "Thong bao loi"

End Sub

Khi thực thi chương trình, trong trường hợp tệp C:\fileABC.txt không tồn tại, người dùng

sẽ nhận được thông báo lỗi như sau:

Trang 5

CHƯƠNG I I: CƠ BẢN VỀ NGÔN NGỮ LẬP TRÌNH VISUAL BASIC 

97

Hình III-31: Thông báo lỗi do người dùng tự tạo

14.3.2 Đối tượng Err

Đối tượng Err chứa tất cả các thông tin về lỗi thực thi của chương trình Đối tượng này thường được sử dụng cùng với câu lệnh On Error Resume Next Nhờ có đối tượng Err mà người lập trình có thể biết rõ được các thông tin về lỗi xảy ra để có hướng xử lý thích hợp

Đối tượng Err có nhiều phương thức và thuộc tính khác nhau phục vụ cho việc xử lý lỗi Trong

đó, những thuộc tính và phương thức được sử dụng nhiều nhất bao gồm: Description, Number và Clear

Thuộc tính Number 

Thuộc tính Number trả về số hiệu của lỗi thực thi Đây cũng là thuộc tính mặc định của đối tượng Err, nghĩa là hai biểu thức Err.Number và Err là tương đương nhau, đều trả về số hiệu của lỗi thực thi

Trong trường hợp không có lỗi xảy ra, thuộc tính này trả về giá trị 0

Thuộc tính Description 

Thuộc tính Description trả về chuỗi ký tự mô tả thông tin ngắn gọn về lỗi thực thi đã xảy ra Thông thường, khi lỗi xảy ra, nên ít nhất là hiển thị thông báo lỗi cho người dùng bằng cách sử dụng hàm MsgBox kết hợp với thuộc tính Description

Trong trường hợp không có lỗi xảy ra, thuộc tính này trả về chuỗi ký tự rỗng “”

Phương thức Clear 

Phương thức Clear sẽ xoá tất cả các thuộc tính của đối tượng Err, có nghĩa là sau khi thực thi phương thức Clear, đối tượng Err sẽ được trở về trạng thái như khi không có lỗi xảy ra Phương thức này thường được gọi sau khi đã tiến hành xử lý xong các lỗi thực thi

Ví dụ sau sẽ minh hoạ cách thức sử dụng đối tượng Err Trong ví dụ này có thực hiện phép chia cho 0, vì vậy chương trình sẽ làm phát sinh lỗi thực thi Nhờ có câu lệnh On Error GoTo out nên khi có lỗi, chương trình sẽ tự động nhảy đến câu lệnh sau nhãn out Vì vậy các câu lệnh sau câu lệnh làm phát sinh lỗi như MsgBox x và Exit Sub sẽ không bao giờ được thực hiện Đoạn mã lệnh sau nhãn out thực hiện nhiệm vụ thông báo cho người dùng số hiệu lỗi và

mô tả về lỗi đó

Sub test()

On Error GoTo out

Dim x, y

x = 1 / y ' Dòng lệnh này làm phát sinh lỗi chia cho 0

MsgBox x

Exit Sub

out:

' Hiển thị thông báo lỗi cho người dùng

MsgBox “Ma loi: ” & Err.Number

MsgBox Err.Description

Ngày đăng: 10/05/2021, 14:01

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w