- Tham gia
- 13/6/06
- Bài viết
- 7,199
- Được thích
- 24,656
Một dòng lệnh trong VBA có thể chứa tới 1024 ký tự. Như vậy, với đoạn code dài trên một dòng thì bạn phải cuộn màn hình mới xem được hết, như thế thì rất bất tiện và khó kiểm tra. Khi đó bạn có thể ngắt đoạn code dài đó thành 2 hoặc nhiều dòng để chúng thể hiện đầy đủ trên màn hình, nhưng vẫn hiểu là dòng lệnh liên tục. Visual Basic có sử dụng ký tự đặc biệt ở cuối dòng để cho biết dòng tiếp theo vẫn là nối tiếp của dòng trước. Ví dụ như sau:
Thực tế, đoạn code trên như sau:
Ký tự đặc biệt để nối liền trên là ký tự gạch dưới (_). Trước ký tự gạch dưới phải có khoảng trống (bằng cách gõ thanh space bar). Việc ngắt các dòng code không phải là tuỳ tiện mà có quy định cụ thể. Bạn có thể sử dụng ký tự gạch dưới trong các trường hợp sau:
- Trước hoặc sau các toán tử, ví dụ như &, +, Like, NOT, AND
- Trước hoặc sau dấu phẩy (,)
- Trước hoặc sau dấu hai chấm
) và ký hiệu bằng
=)
Bạn không thể sử dụng ký tự gạch dưới ở giữa dấu hai chấm và ký hiệu bằng. Ví dụ trường hợp ngắt dòng dưới đây sẽ không được chấp nhận (đoạn code sẽ có màu đỏ và hiện thông báo lỗi):
Ngoài ra, bạn không dùng được ngắt dòng trong chuỗi đã được khép kín (bằng ngoặc kép). Trường hợp như sau là không được (đoạn code sẽ có màu đỏ):
Và bạn phải sửa lại như sau:
Mã:
Selection.PasteSpecial _
Paste:=xlValues, _
Operation:=xlMultiply, _
SkipBlanks: =False, _
Transpose:=False
Thực tế, đoạn code trên như sau:
Mã:
Selection.PasteSpecial Paste:=xlValues, Operation:=xlMultiply, SkipBlanks: =False, Transpose:=False
Ký tự đặc biệt để nối liền trên là ký tự gạch dưới (_). Trước ký tự gạch dưới phải có khoảng trống (bằng cách gõ thanh space bar). Việc ngắt các dòng code không phải là tuỳ tiện mà có quy định cụ thể. Bạn có thể sử dụng ký tự gạch dưới trong các trường hợp sau:
- Trước hoặc sau các toán tử, ví dụ như &, +, Like, NOT, AND
- Trước hoặc sau dấu phẩy (,)
- Trước hoặc sau dấu hai chấm


Bạn không thể sử dụng ký tự gạch dưới ở giữa dấu hai chấm và ký hiệu bằng. Ví dụ trường hợp ngắt dòng dưới đây sẽ không được chấp nhận (đoạn code sẽ có màu đỏ và hiện thông báo lỗi):
Mã:
Selection.PasteSpecial Paste: _
=xlValues, Operation: _
=xlMultiply, SkipBlanks: _
=False, Transpose: _
=False
Ngoài ra, bạn không dùng được ngắt dòng trong chuỗi đã được khép kín (bằng ngoặc kép). Trường hợp như sau là không được (đoạn code sẽ có màu đỏ):
Mã:
Msgbox “Trong trường hợp lệnh quá dài, bạn có _
thể dùng ký tự gạch dưới để ngắt dòng.”
Và bạn phải sửa lại như sau:
Mã:
Msgbox “Trong trường hợp lệnh quá dài, bạn có ” & _
“thể dùng ký tự gạch dưới để ngắt dòng.”