Macro Excel không hoạt động trong phiên bản mới nhất 1902
Tôi và các đồng nghiệp đã sử dụng một macro Excel trong nhiều năm để lấy một trang dữ liệu, sắp xếp và tạo các trang mới, gửi các trang đến một thư mục mới trên màn hình nền với các sổ làm việc mới. Vào một thời điểm nào đó trong tháng trước, macro đã ngừng hoạt động. Nó tạo thư mục trên màn hình nền, nhưng không tạo các sổ làm việc mới cho các trang dữ liệu đã sắp xếp mới.
Một đồng nghiệp đang chạy Excel phiên bản 1808 và macro hoạt động hoàn hảo với họ (không có vấn đề gì khi tạo sổ làm việc mới trên máy tính để bàn). Những người còn lại trong chúng tôi đang sử dụng Excel phiên bản 1902 và nó không hoạt động. Macro không đưa ra bất kỳ lỗi nào, nó chỉ không chuyển được các trang tính vào sổ làm việc mới (vì chúng chưa được tạo).
Tôi đang tìm kiếm bất kỳ hướng dẫn nào để giải quyết vấn đề này.
Trả lời:
Bạn có thấy thông báo lỗi không?
MS đã giới thiệu một lỗi mới trong macro Excel với một thay đổi đối với Windows trong bản cập nhật gần đây. Nhưng nó kích hoạt một thông báo lỗi. Hãy xem các bài viết này
> 2019 08 14- Lỗi VBA sau khi cập nhật bảo mậthttp://www.vbforums.com/showthread.php?877733-Windows-Tháng 8-2019-Cập nhật-phá-mảng-VB
kiểu="lề trái: 9.35pt">Ồ, MS đã làm hỏng một số mã VBA được viết kém khi cố gắng khắc phục sự cố bảo mật.
<cắt>
Tôi là Kỹ sư leo thang cấp cao của Microsoft và chúng tôi đã xử lý nhiều trường hợp hỗ trợ đã được mở cho vấn đề này. Bản cập nhật được phát hành ngày hôm qua có chứa một thay đổi trong oleaut32.dll giúp giảm thiểu một lỗ hổng bảo mật cụ thể. Thật không may, việc giảm thiểu này bất ngờ khiến tất cả các ứng dụng VBA và VB6 đang truyền một ParamArray trống bắt đầu nhận được E_INVALIDARG khi trả về từ một lệnh gọi hàm nội bộ. Điều này dẫn đến các lỗi mà bạn đang thấy.
Chúng tôi đang xem xét vấn đề này rất nghiêm túc và thảo luận về các khả năng giải quyết vấn đề này một cách an toàn và nhanh chóng. Vì vấn đề này do bản cập nhật bảo mật gây ra nên có thể có một số trở ngại khi chỉ cần khôi phục các thay đổi mà chúng tôi đã thực hiện.
Tuy nhiên, hiện tại chúng tôi đang tập trung toàn bộ vào vấn đề này và xin hãy yên tâm rằng chúng tôi sẽ cung cấp thông tin cập nhật khi có thể.
Trong khi đó, nếu bạn được phép sửa đổi mã của mình, việc truyền tham số cho ParamArray, ngay cả khi bạn không cần đến nó, sẽ tránh được vấn đề.
</cắt>
> 2019 08 16- Bản cập nhật Windows khiến Office VBA không hoạt độnghttps://office-watch.com/2019/windows-update-causes-office-vba-to-fail/
Trả lời:
Xin chào Eric,
Cảm ơn bạn đã đăng câu hỏi lên diễn đàn của chúng tôi.
Theo mô tả của bạn, vì Macro không hoạt động với phiên bản đặc biệt 1902 nên tôi muốn thu thập mã Macro để thử nghiệm.
Ngoài ra, bạn có thể cung cấp phiên bản chi tiết của Office không, chẳng hạn như Phiên bản 1902 (Bản dựng 11328.20392)?
Như bạn đã nói, đồng nghiệp của bạn có thể sử dụng macro trên phiên bản 1808, tôi muốn xác nhận xem mã macro có giống nhau không.
Cuối cùng, tất cả các file có gặp vấn đề này không, bạn đã thử sử dụng nó cho các file Excel khác để kiểm tra kết quả chưa?
Trân trọng,
Nhà Thanh
Trả lời:
Tôi có thể xác nhận mã macro là giống nhau - chạy tốt trên máy tính của đồng nghiệp, không tạo sổ làm việc mới trên máy tính làm việc của tôi. Mã cũng hoạt động bình thường trên máy tính ở nhà của tôi.
Tôi có thể gửi cho bạn một bản sao mã của chúng tôi, bạn muốn tôi gửi cho bạn bằng cách nào?
Eric
Trả lời:
Xin chào Rohn,
Không, tôi không thấy thông báo lỗi. Các liên kết của bạn có vẻ rất liên quan, macro chuyển các biến đến một chương trình con khác để đặt tên cho các sổ làm việc mới. Vì các sổ làm việc không được tạo, tôi đoán là thiếu thông tin từ các biến đó.
Bạn có thể cung cấp ví dụ về cách sử dụng ParamArray mà Scot nói đến không? Tôi chỉ là một người mới học VBA thôi.
Cảm ơn,
Eric
Trả lời:
Xin chào Eric,
Cảm ơn câu trả lời của bạn.
Bạn có thể dán mã vào tệp văn bản, sau đó chia sẻ tệp đó với chúng tôi.
Bạn có thể tải tệp lên OneDrive, sau đó chia sẻ liên kết với chúng tôi.
Trân trọng,
Nhà Thanh
Comments
Post a Comment