: Loại do người dùng xác định không được xác định trong Excel VBA (2 giải pháp nhanh)

  • Chia Sẻ Cái Này
Hugh West

Một trong những lỗi phổ biến nhất mà chúng tôi gặp phải khi làm việc với VBA trong Excel là loại do người dùng xác định không được xác định. Trong bài viết này, tôi sẽ chỉ cho bạn lý do xảy ra lỗi này và cách giải quyết lỗi này.

Tải xuống Sách bài tập thực hành

Tải sách bài tập thực hành này xuống để thực hành trong khi bạn đang đọc bài viết này.

Loại do người dùng xác định Không xác định.xlsm

2 Nguyên nhân và giải pháp cho Do người dùng xác định Loại không được xác định trong Excel VBA

2 vấn đề chính đằng sau lỗi thường gặp này trong Excel VBA . Hãy cùng tìm hiểu chi tiết và tìm ra cách giải quyết.

1. Lỗi Chính tả Khi Khai báo Biến

Đây là nguyên nhân chính gây ra lỗi này. Thông thường, lỗi “Loại do người dùng xác định không được xác định” xảy ra do lỗi chính tả khi khai báo biến.

Hãy xem các dòng mã sau.

5186

Nếu bạn chạy mã này, bạn sẽ nhận được một hộp lỗi thông báo cho bạn về sự hiện diện của lỗi “Loại do người dùng xác định không được xác định”. Cùng với nó, bạn sẽ tìm thấy dòng mã thứ hai được đánh dấu bằng màu xanh lam, nơi tôi đã viết “strng” thay cho “string” .

Tôi hy vọng bạn hiểu được vấn đề. VBA không thể nhận ra loại biến “strng” , đó là lý do tại sao nó coi nó là một loại biến mới và nghĩ rằng bạn đã định nghĩa nó ở đâu đó. Nhưng khi nóthấy rằng bạn đã không khai báo nó ở bất cứ đâu, nó sẽ báo lỗi.

Vì vậy, trong khi chạy các mã VBA đơn giản, nếu bạn vẫn gặp phải lỗi này, trước tiên hãy kiểm tra tất cả cách viết của các loại biến của bạn.

2. Thiếu tham chiếu phù hợp

Đây là một nguyên nhân khác gây ra lỗi này. Đó là một sự thiếu tham chiếu thích hợp. Đôi khi, chúng tôi sử dụng một số đối tượng trong mã của mình cần tham chiếu thích hợp từ hộp Tham chiếu Visual Basic . Mặt khác, VBA không nhận ra đối tượng.

Hãy xem mã VBA sau đây.

5067

Chạy mã này. Bạn sẽ gặp cùng một lỗi cũ “Loại do người dùng xác định không được xác định”, làm nổi bật Đối tượng từ điển . Điều này là do VBA không thể nhận ra đối tượng Từ điển và coi đó là biến do người dùng xác định, vốn không được định nghĩa nhầm.

Bây giờ câu hỏi lớn nhất là làm thế nào để giải quyết lỗi này? Dễ. Có 2 cách để giải quyết lỗi này.

⧪ Giải pháp 1: Kiểm tra Tham chiếu Điều kiện tiên quyết từ Hộp Tham chiếu Hộp Trực quan

Đây là cách thông minh nhất để giải quyết vấn đề này. Chuyển đến Công cụ > Tham khảo trong dải băng Visual Basic . Nhấp vào Tham khảo .

Một hộp thoại có tên Tham khảo sẽ mở ra. Cuộn và tìm Microsoft Scripting Runtime (Điều này phụ thuộc vào đối tượng mà bạn đang sử dụng. Từ điểnđối tượng cần Microsoft Scripting Runtime để được công nhận. Vì vậy, trong khi sử dụng một đối tượng trong mã VBA , bạn phải biết điều kiện tiên quyết của nó để được VBA nhận ra. Truy cập liên kết này để biết thêm thông tin.). Hãy kiểm tra.

Bây giờ hãy quay lại và chạy mã. Bạn sẽ không nhận được bất kỳ lỗi nào. Bởi vì VBA có thể nhận ra Đối tượng từ điển vào thời điểm này.

⧪ Giải pháp 2: Khai báo nó là Đối tượng thuần túy thay vì Đối tượng cụ thể

Có một cách khác để giải quyết vấn đề này. Bạn có thể khai báo đối tượng là một đối tượng thuần túy, thay vì Đối tượng từ điển .

Hãy chú ý các dòng mã sau.

1667

Ở đây tôi đã khai báo biến MyDictionary là một đối tượng đơn giản, không phải Dictionary. Bây giờ nếu bạn chạy mã này, bạn sẽ không gặp bất kỳ lỗi nào.

Hugh West là một nhà phân tích và huấn luyện viên Excel giàu kinh nghiệm với hơn 10 năm kinh nghiệm trong ngành. Ông có bằng Cử nhân Tài chính Kế toán và bằng Thạc sĩ Quản trị Kinh doanh. Hugh có niềm đam mê giảng dạy và đã phát triển một phương pháp giảng dạy độc đáo, dễ hiểu và dễ theo dõi. Kiến thức chuyên môn về Excel của ông đã giúp hàng nghìn sinh viên và chuyên gia trên toàn thế giới cải thiện kỹ năng và xuất sắc trong sự nghiệp của họ. Thông qua blog của mình, Hugh chia sẻ kiến ​​thức của mình với mọi người, cung cấp các hướng dẫn Excel miễn phí và đào tạo trực tuyến để giúp các cá nhân và doanh nghiệp phát huy hết tiềm năng của họ.