Bài viết: 4 cách sử dụng Immediate Window trong VBA hiệu quả hơn

Liên hệ QC

kyo

Nguyễn Khắc Duy
Thành viên danh dự
Tham gia
4/6/06
Bài viết
901
Được thích
2,715
4 cách sử dụng Immediate Window trong VBA hiệu quả hơn

Immediate Window là một công cụ tuyệt vời mà VBA cung cấp cho bạn. Đúng như cái tên của nó, nó cho phép bạn có được câu trả lời ngay tức khắc nếu bạn hỏi, hay thực thi một câu lệnh ngay tức thì nếu bạn sử dụng. Nó được xây dựng ngay trên VBE và nó tỏ ra hữu dụng đối với bạn ngay khi bạn viết code, bạn debug hay thậm chí là học code.

Vậy bạn đã biết cách sử dụng nó tốt nhất chưa? Bài viết này sẽ chỉ cho bạn thấy một số khả năng của Immediate Window mà bạn có thể ứng dụng ngay lập tức.

Trước tiên, làm cách nào để bật Immediate Window?

Một cách nhanh nhất, bạn hãy vào VBA bằng phím tắt Alt + 11, sau đó gọi Immediate Window bằng Ctrl + G.
Cách thứ hai, bạn có thể thông qua thẻ Developer trên Ribbon của Excel, chọn Visual Basic. Sau đó chọn Immediate Window tại thanh thực đơn View.

36788135712_187724e763_b.jpg


36788135492_7e3ea32ee3_o.jpg

Và đây chính là Immediate Window:

36788135252_17b11e0e71_o.jpg

Giao diện mở đầu của Immediate Window thật không mấy ấn tượng, hay nói chính xác hơn thì nó hoàn toàn trống rỗng, không có bất kỳ thứ gì, kể cả hướng dẫn. Vậy bạn có thể làm gì với nó đây?

1/ Lấy thông tin

Bạn có thể lấy thông tin của rất nhiều thứ đang tồn tại trên Excel. Chẳng hạn với ví dụ dưới đây, bạn có thể biết cụ thể sheet đang hiện hành là sheet gì, cell trong một sheet nào đó mang giá trị là bao nhiêu, format ra làm sao, công thức của nó là gì. Chỉ bằng với dấu ? ở đằng trước, bạn có thể có câu trả lời ngay tức thì ở dòng tiếp theo, nó tương tự như 1 câu hỏi - 1 câu trả lời vậy.

36788135022_5631ce7cf3_b.jpg

Cách khác, bạn có thể theo dõi giá trị của biến, của mảng,… ngay trong lúc code đang vận hành. Đây cũng là một trong những cách debug rất tốt khi mà không phải lúc nào bạn rê chuột vào biến thì nó sẽ cho bạn biết giá trị ngay lập tức, đặc biệt là mảng. Chính những lúc này, sự trợ giúp của Immediate Window đặc biệt quan trọng.

36788134842_271922b899_o.jpg

Một đặc biệt khác, cách viết trong Immediate Window cũng khá giống trong môi trường Editor, có nghĩa là nó sẽ hiện các gợi ý thông minh giúp bạn chứ không bắt bạn phải nhớ hết.

36788134552_1a33eb6694_o.jpg

2/ Thực thi một yêu cầu

Bạn không cần phải viết hẳn 1 macro chỉ để thực hiện 1 vài dòng code đơn giản, điều đó rất lãng phí thời gian. Những lúc như thế, bạn chỉ cần bỏ đi dấu ? ở đầu, Immediate Window sẽ tự hiểu rằng bạn đang ra một yêu cầu thực thi một điều gì đó. Ví dụ như bây giờ bạn muốn đổi giá trị tại cell A2 thành GPE. Bạn sử dụng Immediate Window như sau:

36788134362_860bdac34b_b.jpg

Lập tức sau khi Enter, bạn sẽ thấy ngay giá trị thay đổi:

36788134142_8883d18d0d_b.jpg

Bạn cũng có thể áp dụng tương tự trong khi macro đang thực thi giữa chừng, nếu bạn muốn thay đổi, chẳng hạn như arr(0) ở ví dụ ban đầu thành 10, bạn có thể gõ ngay arr(0) = 10 ngay tại Immediate Window, lập tức mảng của bạn sẽ thay đổi ngay tức thì mà không cần phải ngừng và chạy macro lại từ đầu, cũng như không cần phải viết code lại cho macro.

3/ Chạy 1 macro

Bạn sẽ thắc mắc rằng bạn có thể chạy macro chỉ bằng nhấn Play hay F5 trực tiếp, điều này hoàn toàn đúng đối với macro không đòi hỏi tham số. Còn đối với macro đòi hỏi tham số, chắc chắn bạn không thể chạy trực tiếp mà cần phải có 1 macro trung gian khác làm việc này, do vậy, cũng sẽ tốt nếu bạn sử dụng Immediate Window để trực tiếp chạy macro đó.

36788133932_e3e73e47e4_o.jpg

4/ Hiện kết quả từ Debug.Print

Một cách debug mà VBA cung cấp chính là câu lệnh Debug.Print, và câu lệnh này đòi hỏi bạn phải sử dụng Immediate Window để xem. Câu lệnh này thông thường được sử dụng để theo dõi sự thay đổi của một biến nào đó, nhưng thay vì bạn phải gõ từng dấu ? trong Immediate Window để xem hay viết code hiện Msgbox để xem hoặc ghi vào một cell, một range nào đó, bạn có thể yêu cầu VBA ghi trực tiếp vào Immediate Window.

36788133792_87c635df5c_o.jpg

Trong ví dụ này, chúng ta có thể thấy là Debug.Print đã yêu cầu Immediate Window hiện ra tất cả giá trị của arr(i) mỗi khi câu lệnh được vận hành.

Hy vọng với bài viết này, bạn sẽ phần nào biết thêm được cách sử dụng Immediate Window hiệu quả hơn.
Chúc bạn thành công.

Một số bài viết có liên quan:
1/ Tổng quan về Scripting.Dictionary
2/ Hiểu biết thêm về phương thức Evaluate - Understanding Evaluate Method
3/ Tạm dừng VBA bằng cách sử dụng Wait, Sleep hoặc Vòng lặp
 
Lần chỉnh sửa cuối:
Upvote 0
Web KT
Back
Top Bottom