Cách xử lý lỗi trong VBA Excel 2016 | Trở thành lập trình viên
Xem lại thủ tục EnterSapesRoot
Kiểm tra mã sau đây. Thường trình sử dụng câu lệnh On Error đa mục tiêu để bẫy toàn bộ các lỗi và sau đó kiểm tra xem liệu InputBox có bị hủy hay không .
Sub EnterSquareRoot5()
Dim Num As Variant
Dim Msg As String
‘ Set up error handling
On Error GoTo BadEntry
‘ Prompt for a value
Num = InputBox(“Enter a value”)
‘ Exit if cancelled
If Num = ““ Then Exit Sub
‘ Insert the square root
ActiveCell.Value = Sqr(Num)
Exit Sub BadEntry:
Msg = “An error occurred.” & vbNewLine & vbNewLine
Msg = Msg & “Make sure a range is selected,
“ Msg = Msg & “the sheet is not protected,
“ Msg = Msg & “and you enter a nonnegative value.”
MsgBox Msg, vbCritical
End Sub
Thường trình này bẫy bất kể loại lỗi thời hạn chạy. Sau khi mắc lỗi thời hạn chạy, quá trình EnterSapesRoot đã sửa đổi sẽ hiển thị hộp thông tin này. Hộp thông tin này miêu tả các nguyên do rất hoàn toàn có thể gây ra lỗi .
Một lỗi thời gian chạy trong thủ tục tạo ra thông báo lỗi semihelpful này.
Lỗi không hoạt động?
Nếu câu lệnh On Error không hoạt động như quảng cáo, bạn cần thay đổi một trong các cài đặt của mình:
- Kích hoạt VBE.
- Chọn lệnh Công cụ → Tùy chọn.
- Bấm vào tab Chung của hộp thoại Tùy chọn.
-
Đảm bảo rằng cài đặt Break on All Error được bỏ chọn.
Nếu cài đặt này được chọn, về cơ bản Excel sẽ bỏ qua mọi câu lệnh On Error. Bạn thường muốn giữ các tùy chọn Bẫy lỗi được đặt thành Phá vỡ các lỗi chưa xử lý.
Giới thiệu về câu lệnh On Error
Sử dụng câu lệnh On Error trong mã VBA của bạn được cho phép bạn bỏ lỡ việc xử lý lỗi tích hợp của Excel và sử dụng mã xử lý lỗi của riêng bạn. Trong ví dụ trước, lỗi thời hạn chạy khiến thực thi macro chuyển sang câu lệnh có nhãn BadEntry. Do đó, bạn tránh được các thông tin lỗi không thân thiện của Excel và bạn hoàn toàn có thể hiển thị thông tin của riêng mình cho người dùng .
Xem thêm: Cách sử dụng Phương thức GetOpenFilename trong VBA Excel 2016
Khóa học VBA Excel tại Hà Nội
Source: https://thiennhuong.com
Category: Thủ Thuật