Nếu đang sử dụng Excel, bạn có thể gặp phải lỗi “Lỗi thời gian chạy 424” với thông báo “Yêu cầu đối tượng”.
Đây là lỗi với VBA (Visible Primary for Functions) và về cơ bản hiển thị khi bạn đang tham chiếu đến một đối tượng không tồn tại hoặc nằm ngoài phạm vi hiện tại.
Nếu bạn thấy lỗi do ai đó đang “phát triển” bất kỳ chức năng macro / tự động nào trong bảng tính excel, thì vấn đề có thể xảy ra là bạn đang gọi một đối tượng “ngoài ngữ cảnh”. Điều này có nghĩa là bạn có thể đã tải một đối tượng, nhưng nội dung của nó có thể đã bị thay đổi hoặc thay thế. Ngoài ra còn có một số vấn đề tiềm ẩn khác, các bản sửa lỗi mà tôi sẽ giải thích trong hướng dẫn này …
Nguyên nhân
Lỗi bạn sẽ thấy sẽ có thông báo sau:
Lỗi thời gian chạy ‘424’
Đối tượng được yêu cầu
Để giải thích tại sao lỗi lại xuất hiện và ý nghĩa của nó – Microsoft đã phát hành gói “Visible Primary” nổi tiếng vào cuối những năm 90.
Điều này cung cấp các khả năng cơ bản với hệ thống, cho phép các nhà phát triển sở thích tạo ra các ứng dụng đơn giản. VB là một thành công lớn.
Do đó, Microsoft đã giới thiệu “VBA” (Visible Primary for Functions) trong bộ phần mềm Workplace của họ, cụ thể là Excel và Phrase. Điều này cho phép kiểu nhà phát triển tạo chức năng tự động trong bảng tính Excel, tham chiếu “đối tượng” trong chính trang tính, v.v.
Mỗi khi bạn sử dụng Visible Primary, những gì bạn đang làm là gọi một loạt “đối tượng” vào bộ nhớ. Các đối tượng này chỉ đơn giản là các biến với một loạt các chức năng bổ sung được áp dụng, bao gồm các chức năng tùy chỉnh, v.v. Vấn đề – và điều này kéo dài qua hầu hết các ngôn ngữ lập trình – là nếu bạn đang tham chiếu đến một đối tượng chưa được gọi, ứng dụng sẽ không thành công.
Giải pháp
Nếu bạn muốn khắc phục sự cố, trước tiên bạn cần đảm bảo dữ liệu có trong hệ thống và sau đó bạn có thể tham chiếu nó một cách chính xác. Hướng dẫn này sẽ giải thích cách:
1. Đảm bảo bạn đã xác định các biến một cách chính xác
Vấn đề chính là bạn đã gọi một phương thức trên một biến (đối tượng) không tồn tại. Lý do phổ biến nhất cho điều này là bạn đã viết sai chính tả tên của biến và do đó đã không khai báo nó trong ứng dụng VBA của bạn. Lấy ví dụ sau:
Kiểm tra phụ ()
Application33.WorksheetFunction.Sum (Phạm vi (“A1: A100”))
Kết thúc Sub
Ở trên sẽ phát sinh lỗi vì bạn đang cố gọi phương thức WorksheetFunction trên một đối tượng được tham chiếu tại “Application33”.
Thật không could, đối tượng Application33 không tồn tại trong bộ nhớ, khiến ứng dụng của bạn không thể tải nó. Để khắc phục điều này, bạn cần phải xem qua mã nguồn của mình (tham chiếu sai hầu như sẽ luôn được tham chiếu) và sửa bất kỳ tên đối tượng sai chính tả nào.
2. Nếu Sử dụng Excel, Đảm bảo Phạm vi / Bộ chọn Tồn tại
Một trong những lý do phổ biến nhất gây ra lỗi là bạn đang cố gắng tham chiếu đến một đối tượng hoặc giá trị không tồn tại. Đây là một vấn đề điển hình với việc thích sử dụng VLookup hoặc một trong các đối tượng ActiveX. Nếu gặp lỗi này, bạn cần đảm bảo mã chỉ tham chiếu đến các đối tượng tồn tại:
Kiểm tra phụ riêng tư ()
Điều này sẽ gây ra lỗi
Software.WorksheetFunction.VLookup (TeamName, Vary (“TeamNameLookup”), 3, Sai) .Worth
Giá trị phải là
Software.WorksheetFunction.VLookup (TeamName, Sheets (“YourSheetName”). Phạm vi (“TeamNameLookup”), 3, Sai)
Kết thúc Sub
Điều trên có nghĩa là bạn đang cố gắng gọi các trang tính khác nhau và các hàm “Phạm vi” / “Giá trị” tương ứng của chúng mà không tìm thấy hoặc khai báo trang tính. Để khắc phục điều này, bạn cần đảm bảo rằng bạn đang gọi “Phạm vi” hoặc “Giá trị” trên các đối tượng có phạm vi tương ứng.
3. Đảm bảo bạn có các định nghĩa chính xác
Cuối cùng, một trong những lý do phổ biến hơn gây ra lỗi là bạn không xác định chính xác các biến của mình.
Từ việc xác định không chính xác các biến làm định nghĩa đối tượng sai, đến việc gọi “Possibility Specific”, có thể là trường hợp bạn đang cố gắng tham chiếu đến các biến / đối tượng không được xác định đơn giản vì chúng chưa được định nghĩa đúng.
Ví dụ…
Tùy chọn rõ ràng
Kiểm tra phụ riêng tư ()
Ở đây, bạn cần phải khai báo các biến một cách rõ ràng trước khi cố gắng tham chiếu / điền chúng vào
Ví dụ…
Làm mờ đường dẫn của bạn dưới dạng chuỗi
Đặt your_path = “x / y / z”
Kết thúc Sub
Trong ví dụ trên, nếu biến “your_path” không được khai báo trước khi cố gắng thiết lập, bạn sẽ gặp phải lỗi 424 (vì đối tượng “your_path” không tồn tại). Từ đây, bạn cũng cần đảm bảo rằng bạn có thể gọi các đối tượng có liên quan (nếu bạn đang tham chiếu đến giá trị trang tính, bạn cần đảm bảo trang tính tồn tại và có thể được tải).
Rõ ràng, có một số trường hợp khác của lỗi này. Vì bản chất cụ thể của mã của mọi người là khác nhau, tôi không thể xem xét từng tiềm năng duy nhất. Hy vọng rằng bạn có thể thấy rằng lỗi là do tham chiếu biến không hợp lệ trên hệ thống của bạn.