Trang Chủ Xã hội Truyền thông Cách sử dụng câu lệnh OnError trong Excel 2016 VBA - núm vú

Cách sử dụng câu lệnh OnError trong Excel 2016 VBA - núm vú

Mục lục:

Video: Hướng dẫn kỹ thuật Debug VBA trong Excel 2025

Video: Hướng dẫn kỹ thuật Debug VBA trong Excel 2025
Anonim

Khi bạn cần giải quyết các lỗi trong Excel VBA, bạn có thể sử dụng câu lệnh OnError. Tuy nhiên, có một số điều bạn cần biết trước tiên. Bạn có thể sử dụng câu lệnh On Error theo ba cách.

Cú pháp Nhãn
Trên lỗi GoTo Sau khi thực hiện câu lệnh này, VBA thực hiện lại câu lệnh

sau nhãn được chỉ định. Bạn phải bao gồm một dấu hai chấm

sau nhãn để VBA nhận ra nó như một nhãn.

Trên Error GoTo 0 Sau khi thực hiện câu lệnh này, VBA sẽ tiếp tục kiểm tra lỗi bình thường

. Sử dụng câu lệnh này sau khi sử dụng một trong các câu lệnh

Câu lệnh Lỗi khác hoặc khi bạn muốn gỡ lỗi xử lý

trong thủ tục của bạn.

Trên Lỗi Tiếp tục Tiếp Sau khi thực hiện câu lệnh này, VBA đơn giản bỏ qua tất cả các lỗi

và tiếp tục thực hiện với câu lệnh tiếp theo.

Phục hồi sau lỗi

Trong một số trường hợp, bạn chỉ cần thói quen kết thúc một cách duyên dáng khi xảy ra lỗi. Ví dụ, bạn có thể hiển thị một thông báo mô tả lỗi và sau đó thoát khỏi thủ tục. (Ví dụ về EnterSquareRoot5 được hiển thị trước đó sử dụng kỹ thuật này.) Trong các trường hợp khác, bạn muốn khôi phục lại từ lỗi, nếu có thể.

Để phục hồi từ một lỗi, bạn phải sử dụng một tuyên bố Resume. Thao tác này sẽ xóa trạng thái lỗi và cho phép bạn tiếp tục thực hiện ở một số vị trí. Bạn có thể sử dụng tuyên bố Resume theo ba cách.

Điều gì đó Tiếp tục Việc thực thi tiếp tục với câu lệnh gây ra lỗi. Sử dụng điều này nếu mã xử lý lỗi của bạn sửa chữa vấn đề và

thì vẫn có thể tiếp tục.

Tiếp tục Tiếp Việc thực thi tiếp tục với câu lệnh ngay sau câu lệnh gây ra lỗi. Điều này chủ yếu bỏ qua lỗi

.

Tiếp tục nhãn Thực hiện lại hồ sơ tại nhãn bạn chỉ định. Ví dụ sau sử dụng một tuyên bố Resume sau khi xảy ra lỗi:

Sub EnterSquareRoot6 () Dim Num As Variant Dim Msg Như String Dim Ans As Integer TryAgain: 'Thiết lập lỗi xử lý On Error GoTo BadEntry 'Nhắc một giá trị Num = InputBox ("Nhập giá trị") Nếu Num = "" Then Exit Sub' Chèn ActiveCell của hình vuông. Giá trị = Sqr (Số) Thoát khỏi Sub BadEntry: Msg = Err. Số Msg & vbNewLine & vbNewLine Msg = Msg & "Hãy chắc chắn rằng một phạm vi được chọn," Msg = Msg & "tờ không được bảo vệ," Msg = Msg & "và bạn nhập một giá trị không âm. "Msg = Msg & vbNewLine & vbNewLine &" Hãy thử lại? "Ans = MsgBox (Msg, vbYesNo + vbCritical) Nếu Ans = vbYes Sau đó Tiếp tục TryAgain End Sub

Thủ tục này có nhãn khác: TryAgain.Nếu lỗi xảy ra, quá trình thực thi vẫn tiếp tục tại nhãn BadEntry, và mã hiển thị thông báo dưới đây. Nếu người dùng trả lời bằng cách nhấp vào Có, câu lệnh Tiếp tục khai thác, và thực hiện nhảy trở lại nhãn TryAgain. Nếu người dùng nhấp vào Không, thủ tục kết thúc.

Nếu xảy ra lỗi, người dùng có thể quyết định thử lại.

Lưu ý rằng thông báo lỗi cũng bao gồm số lỗi, cùng với mô tả lỗi "chính thức".

Tờ khai Resume xóa các điều kiện lỗi trước khi tiếp tục. Để xem điều này, hãy thử thay thế câu lệnh sau cho câu lệnh thứ hai trong ví dụ trước:

Nếu Ans = vbYes Sau đó GoTo TryAgain

Mã không hoạt động đúng nếu bạn sử dụng GoTo chứ không phải là Resume. Để chứng minh, hãy nhập một số âm. Bạn nhận được thông báo lỗi. Nhấp Có để thử lại và sau đó nhập

số âm khác. Lỗi thứ hai này không bị mắc kẹt vì tình trạng lỗi ban đầu không bị xóa. Lỗi xử lý

Để giúp bạn duy trì tất cả các hoạt động xử lý lỗi này một cách thẳng thắn, dưới đây là một bản tóm tắt nhanh chóng. Một khối mã xử lý lỗi có các đặc điểm sau:

Bắt đầu ngay sau khi nhãn được chỉ định trong câu lệnh On Error.

  • Chỉ cần macro của bạn phải đạt được nếu xảy ra lỗi. Điều này có nghĩa là bạn phải sử dụng một câu lệnh như Exit Sub hoặc Exit Function ngay trước nhãn.

  • Có thể yêu cầu một bản tuyên bố về việc làm lại. Nếu bạn chọn không hủy bỏ thủ tục khi xảy ra lỗi, bạn phải thực hiện một tuyên bố Resume trước khi quay lại mã chính.

  • Biết khi nào nên bỏ qua lỗi

Trong một số trường hợp, hoàn toàn không sao bỏ qua lỗi. Đó là khi câu lệnh On Error Resume Next xuất hiện.

Ví dụ sau lặp đi qua mỗi ô trong dải ô đã chọn và chuyển giá trị sang căn bậc hai của nó. Thủ tục này tạo ra một thông báo lỗi nếu bất kỳ ô nào trong vùng lựa chọn chứa một số âm hoặc văn bản:

Sub SelectionSqrt () Dim cell As Range Nếu TypeName (Selection) <> "range" Sau đó Thoát khỏi Sub Cho Mỗi ô Trong ô Selection. Cú pháp tiếp theo: End Sub

Trong trường hợp này, bạn có thể bỏ qua bất kỳ ô nào chứa giá trị bạn không thể chuyển thành một căn bậc hai. Bạn có thể tạo ra tất cả các loại kiểm tra lỗi bằng cách sử dụng cấu trúc If-Then, nhưng bạn có thể tạo ra một giải pháp tốt hơn (đơn giản hơn) bằng cách bỏ qua các lỗi xảy ra.

Các bước sau đây thực hiện điều này bằng cách sử dụng câu lệnh On Error Resume Next:

Sub SelectionSqrt () Dim cell As Range Nếu TypeName (Selection) <> "range" Sau đó Exit Sub On Lỗi Tiếp tục Tiếp theo Đối với mỗi ô Trong Selection tế bào. Bạn có thể sử dụng câu lệnh On Error Resume Next nếu bạn xem các lỗi này vô hại hoặc không quan trọng đối với công việc của bạn.

Cách sử dụng câu lệnh OnError trong Excel 2016 VBA - núm vú

Lựa chọn của người biên tập

Câu hỏi Toán Thực hành aCT: Phương trình tuyến tính - núm vú

Câu hỏi Toán Thực hành aCT: Phương trình tuyến tính - núm vú

Nếu bạn muốn treo trên mặt phẳng phối hợp, sau đó bạn nên biết làm thế nào để sử dụng phương trình tuyến tính. Trong bài kiểm tra Toán ACT, bạn sẽ gặp những câu hỏi như sau, nơi bạn được yêu cầu tìm ra biểu mẫu đánh chặn độ dốc để tính toán độ dốc của các đường khác nhau. Câu hỏi thực hành Độ dốc của đường ...

Câu hỏi luyện thi aCT: Xác suất - núm vú

Câu hỏi luyện thi aCT: Xác suất - núm vú

Có một cơ hội tốt để thi ACT Math có chứa một hoặc thêm nhiều câu hỏi liên quan đến xác suất. Cũng có một cơ hội tốt để bạn trả lời đúng những câu hỏi đó sẽ cải thiện nếu bạn giải quyết các câu hỏi thực hành sau đây. Câu hỏi thực hành Sheila có 4 vớ màu đen và 2 vớ hải quân trong cô ấy

Câu hỏi Toán Thực hành aCT: Phần trăm - núm vú

Câu hỏi Toán Thực hành aCT: Phần trăm - núm vú

Nếu bạn muốn có điểm phần trăm cao trong kỳ thi Toán ACT, sau đó bạn nên biết làm thế nào để giải quyết vấn đề tỷ lệ phần trăm. Như bạn sẽ thấy trong các câu hỏi thực hành sau đây, phần trăm xuất hiện trong một loạt các vấn đề, từ toán kinh doanh sang đại số. Câu hỏi thực hành Cho rằng 6 phần trăm (a + b) = 12 phần trăm

Lựa chọn của người biên tập

Làm thế nào để Xác định Custom Cell Styles trong Excel 2016 - núm vú

Làm thế nào để Xác định Custom Cell Styles trong Excel 2016 - núm vú

Bạn không phải sống với chỉ những kiểu được xác định trước mà Excel 2016 cung cấp cho bạn trên thư viện Kiểu ô bởi vì bạn có thể dễ dàng tạo các kiểu tế bào tùy chỉnh của riêng bạn. Cách đơn giản nhất để tạo ra một kiểu tế bào tùy chỉnh mới là ví dụ. Khi bạn tạo ra một kiểu tế bào theo ví dụ, bạn ...

Làm thế nào để Xoá Cells và Dữ liệu trong Excel 2010 - núm vú

Làm thế nào để Xoá Cells và Dữ liệu trong Excel 2010 - núm vú

Trong Excel 2010, khi bạn cần xóa dữ liệu, xóa định dạng trong việc chọn ô hoặc xóa toàn bộ ô, hàng hoặc cột, bạn có nhiều tuỳ chọn. Excel có thể thực hiện hai loại xóa bỏ các tế bào trong một bảng tính: xóa dữ liệu ô và xóa các tế bào. Xoá bỏ các nội dung của ô Xoá các ô chỉ xóa hoặc bỏ các ô của ô ...

Làm thế nào để chỉnh sửa một nguồn dữ liệu của biểu đồ trong Excel 2010 - núm vú

Làm thế nào để chỉnh sửa một nguồn dữ liệu của biểu đồ trong Excel 2010 - núm vú

Sau khi tạo một biểu đồ trong Excel 2010, bạn có thể cần phải thay đổi dải dữ liệu nguồn là cơ sở cho biểu đồ. Hộp thoại Chọn nguồn dữ liệu cho phép bạn chọn một phạm vi nguồn khác cho một biểu đồ hiện có. Bạn cũng có thể sử dụng hộp thoại này để chuyển đổi hàng và ...

Lựa chọn của người biên tập

Các mẹo để Xử lý các vấn đề về Word trên ASVAB

Các mẹo để Xử lý các vấn đề về Word trên ASVAB

Các thử nghiệm aSVAB thường lãng phí rất nhiều thời gian đọc và đọc lại các vấn đề từ như thể câu trả lời có thể tiết lộ cho họ một phép lạ nào đó; tuy nhiên, giải quyết vấn đề từ toán học một cách chính xác yêu cầu bạn thực hiện một loạt các bước được tổ chức: Đọc hoàn toàn vấn đề. Tìm ra câu hỏi đang đặt ra. Đào tạo những người có liên quan ...

Cố gắng Câu hỏi Câu hỏi Câu hỏi về bốn loại Câu hỏi về ASVAB-núm vú

Cố gắng Câu hỏi Câu hỏi Câu hỏi về bốn loại Câu hỏi về ASVAB-núm vú

Phần của ASVAB sẽ hỏi bạn các câu hỏi để kiểm tra khả năng hiểu các đoạn văn ngắn. Các câu hỏi Câu hỏi Câu hỏi về ASVAB thường có một trong bốn hình thức: Tìm kiếm thông tin cụ thể Nhận biết ý chính Xác định ý nghĩa của từ trong ngữ cảnh Vẽ một ý nghĩa từ ý tưởng đã nêu Mỗi loại câu hỏi ...

Bạn sẽ tìm thấy những câu hỏi nào về Kiến thức về Toán học Subtest of the ASVAB? - con số

Bạn sẽ tìm thấy những câu hỏi nào về Kiến thức về Toán học Subtest of the ASVAB? - con số

Trên CAT-ASVAB, bài kiểm tra kiến ​​thức về Toán học bao gồm 16 câu hỏi bao gồm toàn bộ mảng toán học bậc trung học, và bạn có 20 phút để hoàn thành bài kiểm tra. (Nếu bạn đang dùng phiên bản giấy của ASVAB, bạn phải trả lời 25 câu hỏi trong vòng 24 phút.) Bạn không nhất thiết phải vội vã từng tính toán, nhưng ...