Excel với VBA báo lỗi "Không tìm thấy dự án hoặc thư viện" sau 10 đến 15 lần sử dụng.
Xin chào tất cả mọi người,
Tôi có một vài bản sao của một mô hình Excel chứa các macro. Thông thường, chúng hoạt động tốt nhưng thỉnh thoảng, khi tôi mở một trong số chúng trong Excel 2013, tôi nhận được lỗi "Không tìm thấy dự án hoặc thư viện". Sau đó, tệp của tôi không thể lưu được nữa do bị hỏng. Tôi cũng không thể lưu nó dưới dạng tệp "xlsx" không chứa macro do các lỗi này.
Tôi đã thử làm theo hướng dẫn trực tuyến: nhấn Alt-F11 để vào Visual Basic, nhấp vào "Công cụ", "Tham chiếu" và bỏ chọn bất kỳ thư viện nào không tìm thấy. Nhưng menu "Tham chiếu" không tải được khi tôi đang ở trong một trong những tập tin bị lỗi. Khi tôi nhấp vào "Tham chiếu", nó chỉ đưa tôi trở lại cửa sổ Visual Basic mà không hiển thị menu.
Tôi không muốn phải xóa các macro khỏi mô hình của mình vì chúng rất hữu ích, nhưng tôi không thể để các mô hình tự nhiên bị lỗi như thế này ảnh hưởng đến các thành viên trong nhóm. Xin hãy giúp đỡ!
Trả lời:
Khi bạn nhận được thông báo lỗi, bạn đang chọn Debug hay End? Nếu bạn đã chọn Debug, hãy thử chọn End và sau đó tìm kiếm các tham chiếu bị thiếu. Vấn đề rất có thể nằm ở một tham chiếu đã được cập nhật cho Excel 2016 và để chạy mã trong Excel 2013, bạn cần chọn lại các tham chiếu đó. Thông thường, việc chuyển từ 2013 sang 2016 sẽ hoạt động, nhưng ngược lại thì không.
Để khắc phục vấn đề này, hãy thử liên kết muộn (late binding) và khai báo kích thước biến đơn giản là Object thay vì TypeName thực của chúng, đồng thời không sử dụng tham chiếu. Tôi thường phát triển bằng cách sử dụng tham chiếu và khai báo kích thước là TypeName thực vì lợi ích của tính năng tự động hoàn thành mã (intellisense), nhưng khi quá trình phát triển hoàn tất, tôi chuyển sang liên kết muộn và loại bỏ các tham chiếu.
Bạn có thể tìm hiểu thêm về phương pháp đóng sách sớm và đóng sách muộn tại liên kết sau và bạn cũng có thể tìm kiếm trên Google để có thêm nhiều thông tin hơn nữa.
Trả lời:
Xin chào
Tôi cũng gặp vấn đề tương tự, và nó xảy ra khá thường xuyên với một bảng tính Excel lớn và phức tạp.
Tôi làm mới tập tin từ nhiều nguồn khác nhau bốn hoặc năm lần một ngày và đôi khi, không có cảnh báo nào, tôi nhận được thông báo lỗi "Không tìm thấy dự án hoặc thư viện".
Sau đó, tôi sẽ thiết lập Bảo mật Macro thành "Vô hiệu hóa tất cả macro mà không cần thông báo", mở bảng tính, lưu lại với tên mới và đóng tệp.
Sau đó, tôi đặt lại cài đặt bảo mật macro thành "Cho phép tất cả macro", mở tệp đã lưu gần đây, và THƯỜNG thì nó hoạt động.
Vì chuyện này xảy ra khá thường xuyên, tôi đã lưu tất cả các macro vào một tệp văn bản, vì đôi khi cách này vẫn không giải quyết được vấn đề.
Tôi lưu tệp dưới dạng tệp XLSX, kiểm tra chức năng (các hàm, đồ thị, liên kết), sau đó lưu lại dưới dạng tệp XLSM, tạo lại tất cả các macro, và tệp được sửa chữa.
Tôi đã thử một giải pháp khác như được giải thích ở một số nơi, đó là vào Alt-F11 - Công cụ - Tham chiếu để tìm kiếm thứ gì đó bị thiếu, nhưng tôi chưa bao giờ tìm thấy bất cứ thứ gì hữu ích ở đó.
Ở những nơi khác, họ đề cập đến việc cài đặt hoặc cập nhật Excel gần đây là nguyên nhân gây ra sự cố, nhưng điều này không đúng.
Việc di dời thư viện cũng không phải là nguyên nhân trong trường hợp của tôi, vì tôi thậm chí còn không biết tìm chúng ở đâu hoặc phải làm gì với chúng.
Tôi hy vọng giải pháp được trình bày ở trên sẽ hữu ích!
Chúc một ngày tốt lành,
Ari
Trả lời:
@ArielWary_New, bạn đã tìm ra cách giải quyết vấn đề này chưa? Tôi cũng gặp phải hiện tượng tương tự.
Trả lời:
@ArielWary_New, bạn đã tìm ra cách giải quyết vấn đề này chưa? Tôi cũng gặp phải hiện tượng tương tự.
Chào Stephen
Không ai có thể giải thích tại sao đôi khi tập tin lại mất chức năng, trong khi hầu hết các trường hợp khác nó vẫn hoạt động như mong đợi.
Giải pháp luôn hiệu quả với tôi là phòng ngừa.
Vì tôi hiếm khi thay đổi bộ macro, nên tôi lưu chúng trong một tệp TXT. Nếu tôi thay đổi điều gì đó, tôi sẽ lưu một tệp TXT mới.
Từ nhiều năm trước, vì đôi khi tôi sử dụng tập tin này như một tài liệu tham khảo lịch sử, nên tôi luôn lưu lại một phiên bản hàng ngày.
Sau đó, khi gặp "vấn đề" này, tôi chỉ cần lưu tệp không hoạt động dưới dạng XLSX, làm mất tất cả các macro và chức năng liên quan.
May mắn thay, các nút bấm không bị mất và các tham chiếu đến macro của chúng vẫn còn nguyên vẹn!!
Tôi đóng Excel rồi mở lại (hình như cách này có hiệu quả).
Tôi mở tệp XLSX và lưu nó dưới dạng XLSM.
Sau đó, trong trình soạn thảo VBA (Alt+F8), tôi tạo một mô-đun và chỉ cần dán toàn bộ các macro từ tệp TXT vào đó.
Sau đó tôi lưu lại một lần nữa (mỗi lần lưu đều được đổi tên, đề phòng trường hợp có lỗi), và thế là xong, tôi đã có một tệp XLSM mới với các macro.
Sự kiện gần nhất diễn ra cách đây một tuần, và cho đến hôm nay nó vẫn hoạt động tốt. Và nó sẽ tiếp tục hoạt động cho đến khi phép màu mất đi sức mạnh của nó.
Tôi hy vọng giải pháp này cũng hiệu quả với bạn. Tôi tự tin về kiến thức chuyên môn của mình về công thức, nhưng kiến thức về macro thì khá cơ bản, và tôi hoàn toàn mù tịt về các thư viện, vị trí của chúng, v.v.
Hãy cho tôi biết nếu bạn thử cách này nhé!
Tôi sẽ liên lạc lại nếu bạn cần làm rõ thêm hoặc có thắc mắc.
Chúc một ngày tốt lành,
Ariel
Trả lời:
Cảm ơn, về cơ bản thì đây cũng là quy trình tương tự mà tôi đã làm (may mắn là tôi đã sao lưu mã VBA của mình ngay từ đầu). Chỉ là hơi phiền phức vì cứ phải làm đi làm lại mãi.
Trả lời:
Chào mọi người,
Bạn đang lẫn lộn nhiều thứ có nguyên nhân khác nhau ở đây, nhưng không ai đi tìm cách khắc phục nguyên nhân thực sự như Ossie đã nói.
Vì vấn đề hoàn toàn khác đang được đề cập, tôi thấy cần phải can thiệp một chút ở đây. Việc xuất macro rất đơn giản, bạn có thể thực hiện thủ công:
Mục đích của tệp BAS là bạn có thể nhập nó sau này và/hoặc vào một tệp khác.
Và bạn cũng có thể sử dụng chức năng Kéo và Thả để sao chép một mô-đun vào một tệp khác.
Có thể tự động hóa việc đó bằng cách sử dụng macro và có một số công cụ trên web, hãy xem trang này.
https://www.rondebruin.nl/win/s9/win002.htm
Và đây là đường dẫn đến công cụ Code Cleaner của Rob Bovey.
http://www.appspro.com/Utilities/CodeCleaner.htm
Nhưng tất cả những điều đó không liên quan gì đến nguyên nhân gốc rễ của việc sử dụng Late Binding, bài viết giải thích điều đó có nghĩa là gì, đây là bài viết giải thích ý nghĩa của nó.
Và bạn có thể tìm thấy một ví dụ ở phía này. Hãy xem những phiên bản nào đang được sử dụng, vấn đề này thực sự đã cũ và giải pháp vẫn vậy.
https://peltiertech.com/Excel/EarlyLateBinding.html
Andreas.
Comments
Post a Comment