Nhưng do macro không cho phép undo. Những gì trên bảng tính excel đã thực hiện bằng câu lệnh VBA rồi thì không thể undo lại được. Không lẻ mỗi lần sửa lại phải thu lại ?Vì vậy em đã Export file để lưu đoạn code đó, sau đó mở file mới và Import vào là OK. Sau đó chỉnh sửa vô tư.
Ý nghĩa câu lệnh With...End With và khi nào nên dùng?
Trong VBA các bạn sẽ thường thấy câu lệnh With...End With xuất hiện khi thao tác thu macro tự động cho công việc định dạng ô bảng tính..
Ví dụ 1:
Vậy ý nghĩa nó là gì? Khi nào nên dùng?
1. Ý nghĩa câu lệnh with.. End with:
- Nếu các bạn đọc giáo trình VBA các bạn sẽ thấy định nghĩa rất bác học. Nên đôi lúc sẽ khó hiểu và nản.
Mình giải thích cho các bạn theo cách "đời thường" nhất:
* Hãy nghe đoạn văn mô tả về 1 cô người mẫu A:
....
Ôi như vậy chúng ta cứ thấy đối tượng "Cô người mẫu A" cứ lặp đi lặp lại vậy nghe nhàm quá. Nên ta viết lại như sau xem sao:
Ôi thấy gọn gàng hơn nhiều đấy chứ.
===> Câu lệnh With...End With cũng có tác dụng như việc thu gọn ở ví dụ trên đấy.
Bằng cách sử dụng With... End With, bạn có thể thực hiện khai báo một loạt các thuộc tính khác nhau thuộc về cùng một đối tượng quy định mà không cần phải chỉ định tên của đối tượng nhiều lần.
(Làn da, hàm răng, chân dài, giọng nói.... chính là thuộc tính của đối tượng "cô người mẫu A")
* Trở lại ví dụ 1 nói trên:
- Nếu không dùng câu lệnh With...End With thì phải viết như thế này:
Nó giống y chang ví dụ "cô người mẫu" vậy đó. Đối tượng "Selection.Interior" cứ lặp đi lặp lại liên tục. ==> Mỗi 1 lần VBA truy xuất nhận thực hiện 1 dòng lệnh thì thêm 1 lần nó phải gọi đối tượng "Selection.Interior" ra. ==> Việc thực thi sẽ mất thời gian dài hơn. Trong khi đó, với câu lệnh With...End With như ví dụ 1 thì VBa chỉ cần 1 lần duy nhất truy xuất đến đối tượng "Selection.Interior" và gắn cho nó 1 loạt các thuộc tính của đối tượng này.
* Trường hợp khác: nếu chúng ta chỉ cần can thiệp vào 1 thuộc tính của đối tượng như:
1. Bằng cách sử dụng With... End With, bạn có thể thực hiện khai báo một loạt các thuộc tính khác nhau thuộc về cùng một đối tượng quy định mà không cần phải chỉ định tên của đối tượng nhiều lần.
2. Khi chỉ cần can thiệp vào duy nhất 1 thuộc tính của đối tượng thì không nên dùng with... End with
Ví dụ 1:
Vậy ý nghĩa nó là gì? Khi nào nên dùng?
1. Ý nghĩa câu lệnh with.. End with:
- Nếu các bạn đọc giáo trình VBA các bạn sẽ thấy định nghĩa rất bác học. Nên đôi lúc sẽ khó hiểu và nản.
Mình giải thích cho các bạn theo cách "đời thường" nhất:
* Hãy nghe đoạn văn mô tả về 1 cô người mẫu A:
....
Ôi như vậy chúng ta cứ thấy đối tượng "Cô người mẫu A" cứ lặp đi lặp lại vậy nghe nhàm quá. Nên ta viết lại như sau xem sao:
Ôi thấy gọn gàng hơn nhiều đấy chứ.
===> Câu lệnh With...End With cũng có tác dụng như việc thu gọn ở ví dụ trên đấy.
Bằng cách sử dụng With... End With, bạn có thể thực hiện khai báo một loạt các thuộc tính khác nhau thuộc về cùng một đối tượng quy định mà không cần phải chỉ định tên của đối tượng nhiều lần.
(Làn da, hàm răng, chân dài, giọng nói.... chính là thuộc tính của đối tượng "cô người mẫu A")
* Trở lại ví dụ 1 nói trên:
- Nếu không dùng câu lệnh With...End With thì phải viết như thế này:
Nó giống y chang ví dụ "cô người mẫu" vậy đó. Đối tượng "Selection.Interior" cứ lặp đi lặp lại liên tục. ==> Mỗi 1 lần VBA truy xuất nhận thực hiện 1 dòng lệnh thì thêm 1 lần nó phải gọi đối tượng "Selection.Interior" ra. ==> Việc thực thi sẽ mất thời gian dài hơn. Trong khi đó, với câu lệnh With...End With như ví dụ 1 thì VBa chỉ cần 1 lần duy nhất truy xuất đến đối tượng "Selection.Interior" và gắn cho nó 1 loạt các thuộc tính của đối tượng này.
* Trường hợp khác: nếu chúng ta chỉ cần can thiệp vào 1 thuộc tính của đối tượng như:
So với câu lệnh:Tóm lại:
thì With.. End with trở nên luộm thuộm hơn.
Ví như:
- thay vì viết: "Cô người mẫu A có làn da trắng như sữa" thì ta lại viết "Với cô người mẫu A - Làn da trắng như sữa - Hết"
Vì vậy:
==> Khi chỉ cần can thiệp chỉ vào duy nhất 1 thuộc tính của đối tượng thì không nên dùng with... End with.
1. Bằng cách sử dụng With... End With, bạn có thể thực hiện khai báo một loạt các thuộc tính khác nhau thuộc về cùng một đối tượng quy định mà không cần phải chỉ định tên của đối tượng nhiều lần.
2. Khi chỉ cần can thiệp vào duy nhất 1 thuộc tính của đối tượng thì không nên dùng with... End with
Bài tập
Nguồn: xaydung360.vn