VBA gỡ lỗi in | Làm thế nào để sử dụng Debug.Print để phân tích đầu ra mã VBA?

Excel VBA Debug.Print

Debug Print là một trong những công cụ hữu ích được trình bày trong trình soạn thảo VBA để tìm ra cách một chương trình đang hoạt động và nó giúp phân tích những thay đổi trong giá trị của các biến được tạo trong chương trình VBA. Nó hiển thị đầu ra của cửa sổ ngay lập tức khi chúng tôi chạy chương trình mà không có bất kỳ lỗi nào.

Debug.print cung cấp hai lợi ích chính so với việc sử dụng Msgbox để hiển thị đầu ra của mã. Nó loại bỏ sự cần thiết phải nhấp vào nút OK mỗi lần và hiển thị nhật ký các giá trị đầu ra được trả về cho các cửa sổ ngay lập tức. Nó giúp tiết kiệm rất nhiều thời gian của người dùng. Bài viết này giải thích việc sử dụng excel VBA Debug Print với nhiều ví dụ và giải thích cách sử dụng nó bao gồm những điều sau đây.

VBA Debug Print là gì?

Debug là một đối tượng trong VBA và được sử dụng với hai phương thức được gọi là Assert và Print. Bản in hữu ích trong thông báo hiển thị và khẳng định hữu ích trong việc đánh giá các điều kiện. Trong VBA, câu lệnh debug.print được sử dụng ở bất kỳ vị trí nào của chương trình mã hóa để hiển thị các giá trị của một biến hoặc các thông báo trong Cửa sổ ngay lập tức. Chúng không cần bất kỳ xác nhận hoặc xác nhận nào và không cho thấy bất kỳ ảnh hưởng nào đến mã được phát triển. An toàn và tốt nhất là sử dụng trong mã trong tình huống tạo điều kiện cho nhiều người dùng tiếp cận. Những điều này chỉ hữu ích trong việc kiểm tra hoặc đánh giá mã để xác nhận rằng nó có hoạt động bình thường hay không. In các biến, chuỗi, số, mảng, giá trị trong trang tính excel và trang tính trống và đang hoạt động.

Làm thế nào để sử dụng Excel VBA Debug Print?

VBA debug.print là câu lệnh hữu ích trong việc hiển thị nhiều biến hơn tại một thời điểm trong cửa sổ ngay lập tức. Đây là cách tiếp cận tốt nhất và thay thế để hiển thị đầu ra.

Ví dụ,

Debug.print đếm, tổng, trung bình, độ lệch chuẩn

Như được hiển thị trong ví dụ, tất cả các biến được phân tách bằng dấu phẩy. Câu lệnh này có thể chuyển đầu ra sang cửa sổ tức thì ngay cả trong trường hợp cửa sổ không được mở. Nó không ngừng chạy mã như trong Msgbox. Tính linh hoạt này hỗ trợ việc giám sát liên tục những thay đổi trong đầu ra đối với những thay đổi trong mã.

Các biến đếm, tổng, trung bình và độ lệch chuẩn được hiển thị trên cùng một dòng với khoảng trống bằng nhau giữa chúng. Nếu Cửa sổ ngay lập tức không được mở, hãy làm theo các bước sau để xem kết quả.

Các bước để mở cửa sổ ngay lập tức và xem đầu ra

  • Nhấn Ctrl + G hoặc nhấp vào menu 'Xem' trong trình chỉnh sửa VBA.
  • Chọn tùy chọn 'Cửa sổ ngay lập tức'.
  • Đặt con trỏ vào Cửa sổ và chạy lại mã.
  • Quan sát kết quả đầu ra trong cửa sổ.

Ví dụ về Excel VBA Debug.Print

Sau đây là các ví dụ để chứng minh việc sử dụng debug print trong excel VBA.

Bạn có thể tải xuống mẫu VBA Debug Print Excel này tại đây - VBA Debug Print Excel Template

Ví dụ # 1 - Hiển thị các giá trị của các biến

Đầu tiên, hãy chuyển đến tab Nhà phát triển, nhấp vào Macro và tạo macro để viết mã trong VBA và thêm tên cho nó.

Sau khi thêm tên, nhấp vào tạo. Thao tác này sẽ mở trình chỉnh sửa VBA.

Xây dựng một chương trình nhỏ như trong hình.

Mã:

 Biến con () Dim X As Integer Dim Y As string Dim Z As Double X = 5 Y = "John" Z = 105,632 Debug.Print X Debug.Print Y Debug.Print Z End Sub 

Như được hiển thị trong ảnh chụp màn hình, ba thứ nguyên hoặc biến được giảm xuống dưới dạng X, Y và Z dưới dạng số nguyên, chuỗi và Nhân đôi tương ứng. Để in các giá trị này, Debug.print được sử dụng và kết quả đầu ra sẽ được hiển thị trong cửa sổ ngay lập tức. Nhấn CTRL + G để xem kết quả như trong ảnh chụp màn hình.

Chạy mã này bằng cách sử dụng phím F5 và nhấn  CTRL + G để xem kết quả trong Cửa sổ ngay lập tức.

Chương trình này có thể được đơn giản hóa bằng cách tách các câu lệnh debug.print bằng dấu phẩy.

Mã:

 Biến con () Dim X As Integer Dim Y As string Dim Z As Double X = 5 Y = "John" Z = 105,632 Debug.Print X, Y, Z End Sub 

Câu lệnh gỡ lỗi này in kết quả đầu ra trong cùng một dòng như trong ảnh chụp màn hình.

Ví dụ # 2 - Gỡ lỗi in thành tệp

Ví dụ này minh họa việc sử dụng bản in gỡ lỗi VBA để hiển thị đầu ra cho tệp khi độ dài của văn bản quá cao.

Chương trình in kết quả đầu ra trên một tệp được phát triển như trong hình.

Mã:

Sub DebugPrintToFile () Dim s As String Dim num As Integer num = FreeFile () Mở "D: \ Articles \ Excel \ test.txt" Cho Đầu ra Là #num s = "Hello, world!" Debug.Print s 'ghi vào cửa sổ ngay lập tức Print #num, s' ghi đầu ra vào tệp Đóng #num End Sub

Trong chương trình này, hai biến được gọi là S và Num được coi là một chuỗi và số nguyên tương ứng. Câu lệnh mở được sử dụng để tạo một tệp văn bản với kiểm tra tên. Một chuỗi có tên “Hello World” được khai báo trong biến S.

Khi bạn chạy mã VBA theo cách thủ công hoặc sử dụng phím F5 sau đó, kết quả đầu ra được ghi vào cửa sổ ngay lập tức và tệp tại một thời điểm được hiển thị trong thư mục.

Đầu ra cho tệp được hiển thị trong hình bên dưới.

Việc in đầu ra thành tệp có lợi khi trình bày văn bản dài.

Ví dụ # 3 - Hiển thị giai thừa của một số trong cửa sổ ngay lập tức

Ví dụ này minh họa việc sử dụng câu lệnh debug.print để hiển thị giai thừa của một số.

Mã:

 Công khai Sub Fact () Dim Count As Integer Dim number As Integer Dim Fact As Integer number = 5 Fact = 1 For Count = 1 To number Fact = Fact * Count Next Count Debug. 

Để xác định giai thừa, ba biến được xem xét bao gồm số đếm, số và dữ kiện. Vòng lặp For được thực hiện để lặp lại phép nhân giá trị dữ liệu với số đếm để xác định giai thừa của một số.

Ở đây, câu lệnh debug.print được sử dụng bên ngoài vòng lặp “for” để hiển thị giá trị sau khi hoàn thành vòng lặp. Đầu ra được xác định là.

Nếu chúng ta sử dụng câu lệnh debug.print trong vòng lặp “for” bên trong, giá trị dữ liệu được hiển thị cho mọi thời gian lặp lại như trong hình.

Mã:

 Công khai Sub Fact () Dim Count As Integer Dim number As Integer Dim Fact As Integer number = 5 Fact = 1 For Count = 1 To number Fact = Fact * Count Debug. 

Chạy mã bằng cách nhấn phím F5 và xem kết quả trong cửa sổ ngay lập tức. Trong tình huống này, chúng ta nên coi giá trị cuối cùng là giai thừa của một số đã cho.

Ví dụ # 4 - In Tên đầy đủ của Sổ làm việc Hoạt động

Ví dụ này giải thích cách in tên sổ làm việc hiện tại vào cửa sổ ngay lập tức

Chương trình được phát triển như trong hình.

Mã:

 Sub Activework () Dim count As Long For count = 1 To Workbooks.count Gỡ lỗi.Print Workbooks (count) .FullName Số tiếp theo Gỡ lỗi.Print count End Sub 

Ở đây 'count' là biến được sử dụng để đếm số lượng sổ làm việc đang hoạt động và để hiển thị tên đầy đủ của sổ làm việc đang hoạt động. Tên đầy đủ và số lượng sổ làm việc đang hoạt động được hiển thị như trong hình.

Đường dẫn của sổ làm việc trong ổ đĩa được hiển thị chính xác bằng cách sử dụng câu lệnh VBA debug.print.

Những điều cần ghi nhớ

  • Vấn đề chính với gỡ lỗi .print là không có tùy chọn gói văn bản cho các chuỗi dài trong cửa sổ ngay lập tức
  • Cửa sổ ngay lập tức sẽ được đưa lên trên cùng để xem kết quả đầu ra trong giao diện người dùng
  • Không thể gói văn bản dài được hiển thị trong Cửa sổ ngay lập tức. Trong tình huống này, kết quả đầu ra cần được hiển thị thành một tệp được lưu trữ trong ổ đĩa.

$config[zx-auto] not found$config[zx-overlay] not found