Hướng dẫn cách viết khối lệnh With End With trong VBA Excel

Trong lập trình VBA Excel, khi thực hiện nhiều câu lệnh trên cùng 1 đối tượng, thông thường chúng ta sẽ phải lặp lại tên đối tượng đó nhiều lần. Nhưng với cách viết đó thì câu lệnh sẽ dài và việc viết code sẽ lâu hơn, chạy câu lệnh sẽ lâu hơn, hay sửa code cũng mất thời gian hơn. Do đó VBA cho phép chúng ta sử dụng khối lệnh With… End With để làm đơn giản việc viết code. Hãy cùng tìm hiểu cách viết khối lệnh With End With trong VBA Excel nhé.

Mục đích của khối lệnh With… End With

Chúng ta sử dụng khối lệnh này khi:

  • Muốn phân biệt riêng các câu lệnh cho từng đối tượng cụ thể
  • Muốn viết nhanh hơn các thuộc tính của cùng 1 đối tượng
  • Muốn đọc code nhanh hơn, dễ hiểu hơn
  • Muốn câu lệnh chạy nhanh hơn, dễ sửa hơn

With… End With chính là khối lệnh cho phép bạn gộp nhóm cú pháp theo từng đối tượng cụ thể. Tại đối tượng đó bạn có thể rút gọn các câu lệnh code, đồng thời khiến VBA tập trung ưu tiên chạy các câu lệnh nằm trong khối đó, giúp câu lệnh nhanh hơn.

Cú pháp của khối lệnh With… End With trong VBA

Khối lệnh With… End With được viết như sau:

With Đối tượng được gộp nhóm

[ Câu lệnh thực thi ]

End With

Trong đó:

Câu lệnh thực thi thường là các phương thức, thuộc tính của đối tượng được gộp nhóm.

Các phương thức, thuộc tính bên trong With sẽ bắt đầu với dấu chấm để đại diện cho những thuộc tính có liên quan tới đối tượng được gộp nhóm.

Ứng dụng cách viết khối lệnh With… End With trong VBA

Bạn có 1 câu lệnh thực hiện việc tô màu đỏ, chữ đậm cho vùng A1:A10 của Sheet1 như sau:

Sub Vidu_01()

Sheet1.Range(“A1:A10”).Font.Color = 255       ‘Tô màu chữ là màu đỏ

Sheet1.Range(“A1:A10”).Font.Bold = True       ‘Font chữ đậm

End Sub

Trong câu lệnh trên, có thể thấy đối tượng Sheet1, vùng Range A1:A10, thuộc tính Font của vùng Range được lặp lại trong cả 2 câu lệnh.

Chúng ta có thể gom nhóm đối tượng này như sau:

Sub Vidu_01()

With Sheet1.Range(“A1:A10”).Font

.Color = 255       ‘Tô màu chữ là màu đỏ

.Bold = True       ‘Font chữ đậm

End With

End Sub

Như vậy chỉ cần viết 1 lần đối tượng Sheet1.Range(“A1:A10”).Font trong cùng dòng With, chúng ta có thể gom nhóm tất cả các thuộc tính có liên quan với đối tượng đó lại.

Những thuộc tính bên trong With sẽ không phải lặp lại tên đối tượng nữa. Như vậy câu lệnh sẽ đơn giản hơn nhiều, đặc biệt nếu có nhiều thuộc tính được nhắc tới.

Khi lập trình VBA hoặc xem các câu lệnh có sẵn trên mạng, bạn sẽ thấy khối lệnh With được sử dụng rất nhiều. Việc này giúp tư duy lập trình, đọc code trong VBA trở nên rõ ràng và dễ hiểu hơn nhiều. Chúc các bạn áp dụng tốt kiến thức này vào trong công việc.

Ngoài ra các bạn có thể xem thêm các bài viết hữu ích khác của Học Excel Online về các đối tượng thường sử dụng trong VBA:

Hướng dẫn cách viết code với đối tượng Workbook trong VBA Excel

Hướng dẫn cách viết code với đối tượng Worksheet trong VBA Excel

Hướng dẫn cách viết code với đối tượng Range trong VBA Excel


Tác giả: duongquan211287

· · ·

Khóa học mới xuất bản