Mam kilka arkuszy programu Excel, które używają pól wyboru ActiveX do kontrolowania określonych działań. Pracowali niedawno, ale dziś zaczęli dawać błędy. Zaalarmował mnie o tym kolega, ale nadal działało na moim komputerze. Sprawdziłem jego wersję programu Excel z moją i jego była nowsza. Zauważyłem, że pojawiły się nowe aktualizacje systemu Windows, więc zrobiłem aktualizację. Po zastosowaniu oczekujących aktualizacji nie działa już na moim komputerze. Nie mogę już zaznaczać pól wyboru ActiveX, a podczas próby debugowania wydaje się, że nie mogę już nawet dodać formantu ActiveX do żadnego arkusza roboczego, nawet nowego arkusza. Pojawia się okno dialogowe z komunikatem „Nie można wstawić obiektu”. (Nadal mogę dodawać kontrolki formularzy, ale nie ActiveX). Czy ktoś jeszcze doświadcza tego po ostatniej aktualizacji? Jakieś sugestie?
Dzięki,
Mikrofon
Odpowiedzi:
Z innych forów dowiedziałem się, że jest to spowodowane aktualizacją MS Update i dobrym rozwiązaniem jest po prostu usunięcie pliku MSForms.exd z dowolnego podfolderu Temp w profilu użytkownika. Na przykład:
C:\Users\[user.name]\AppData\Local\Temp\Excel8.0\MSForms.exd
C:\Users\[user.name]\AppData\Local\Temp\VBE\MSForms.exd
C:\Users\[user.name]\AppData\Local\Temp\Word8.0\MSForms.exd
Oczywiście aplikacja (Excel, Word ...) musi zostać zamknięta, aby usunąć ten plik.
źródło
Oto najlepsza odpowiedź, jaką znalazłem na blogu zespołu pomocy technicznej programu Microsoft Excel
Źródło
źródło
To był KB2553154 . Microsoft musi opublikować poprawkę. Jako twórca aplikacji Excel nie możemy korzystać z komputerów wszystkich naszych klientów i usuwać z nich plików. Jesteśmy obwiniani za coś, co spowodował Microsoft.
źródło
Jestem programistą Excela i zdecydowanie poczułem ból, kiedy to się stało. Na szczęście udało mi się znaleźć obejście tego problemu, zmieniając nazwy plików MSForms.exd w VBA, nawet gdy jest uruchomiony program Excel, co również może rozwiązać problem. Programiści programu Excel, którzy muszą rozpowszechniać swoje arkusze kalkulacyjne, mogą dodać następujący kod VBA do swoich arkuszy kalkulacyjnych, aby uczynić je odpornymi na aktualizację MS.
Umieść ten kod w dowolnym module.
Procedura RenameMSFormsFiles próbuje zmienić nazwy plików MSForms.exd w folderach
C:\Users\[user.name]\AppData\Local\Temp\Excel8.0\
iC:\Users\[user.name]\AppData\Local\Temp\VBE\
na MSForms - Copy.exd.Następnie wywołaj podprogram RenameMSFormsFiles na samym początku zdarzenia Workbook_Open.
Arkusz kalkulacyjny spróbuje zmienić nazwy plików MSForms.exd po otwarciu. Oczywiście nie jest to idealne rozwiązanie:
Przynajmniej na razie programiści programu Excel mogą nadal rozpowszechniać swoją pracę, stosując to obejście, dopóki firma Microsoft nie wyda poprawki.
Opublikowałem to rozwiązanie tutaj .
źródło
W systemie Windows 8.1 nie mogłem znaleźć żadnych plików .exd za pomocą wyszukiwania w systemie Windows. Z drugiej strony polecenie cmd
dir *.exd /S
znalazło jeden plik w moim systemie.źródło
Porady w KB i nowszych nie działały dla mnie. Odkryłem, że jeśli jeden użytkownik programu Excel 2007 (z aktualizacją zabezpieczeń lub bez niej; nie jestem pewien, jakie dokładnie okoliczności to powodują) zapisuje plik, powraca pierwotny błąd.
Odkryłem, że najszybszym sposobem ponownej naprawy pliku jest usunięcie całego kodu VBA. Zapisać. Następnie zamień kod VBA (kopiuj / wklej). Zapisać. Zanim to zrobię, najpierw usuwam pliki .EXD, ponieważ w przeciwnym razie pojawia się błąd podczas otwierania.
W moim przypadku nie mogę uaktualnić / zaktualizować wszystkich użytkowników mojego pliku Excel w różnych lokalizacjach. Ponieważ problem powraca po zapisaniu pliku Excela przez niektórych użytkowników, będę musiał zastąpić formant ActiveX czymś innym.
źródło
Uproszczone instrukcje dla użytkowników końcowych. Możesz skopiować / wkleić następujące elementy.
Oto jak rozwiązać problem, gdy się pojawi:
Aby ta poprawka zadziałała, może być konieczne poczekanie, aż wystąpi problem. Zastosowanie go przedwcześnie (przed zainstalowaniem usługi Windows Update w systemie) nie pomoże.
źródło
Najlepszym źródłem informacji i aktualizacji dotyczących tego problemu, jakie udało mi się znaleźć, są blogi TechNet »Blog zespołu pomocy technicznej programu Microsoft Excel (jak wspomniano):
Formanty formularzy przestają działać po aktualizacjach z grudnia 2014 r. (Zaktualizowane 10 marca 2015 r.)
W marcu 2015 r. Oprócz automatycznej naprawy i instrukcji ręcznych wydana została poprawka , która jest również dostępna w witrynie Windows Update.
Najnowsza aktualizacja i poprawka firmy Microsoft: błąd „Nie można wstawić obiektu” 3025036 w niestandardowym rozwiązaniu pakietu Office ActiveX po zainstalowaniu aktualizacji zabezpieczeń MS14-082
Ogólne informacje o problemie:
Rozwiązania ręczne i dodatkowe:
źródło
W końcu znalazłem tę odpowiedź w oficjalnej bazie wiedzy Microsoft:
http://support.microsoft.com/kb/3025036/EN-US
Nie ma tu żadnych nowych informacji niż te, które mamy w poprzednich odpowiedziach, ale przynajmniej potwierdza, że Microsoft jest świadomy problemu.
źródło
Wiem, że opublikowano już wiele odpowiedzi na ten temat, ale żadna z nich nie działała niezależnie w mojej witrynie. Oto, co zadziałało dla mnie:
Krok 1: Odinstaluj następujące aktualizacje - KB2920789, KB2920790, KB2920792, KB2920793, KB2984942, KB2596927
Krok 2: Ukryj te aktualizacje, aby nie zostały zainstalowane przy kolejnych ponownych uruchomieniach
Krok 3: Usuń folder Excel8.0 z C: \ Users \ <> \ AppData \ Local \ Temp
Krok 4: Uruchom ponownie stację roboczą (upewniłbym się również, że wyżej wymienione KB nie zostały przypadkowo zastosowane)
źródło
Chcę udzielić odpowiedzi, która zadziałała jako jedyna dla mnie (zdaję sobie sprawę, że mogę być jedyną kiedykolwiek). Miałem w jednym makrze, które wywoływałem za pomocą wstążki. Miał następujący kod:
Nie byłem świadomy, że generuje błąd, więc byłem zaskoczony i próbowałem wszystkiego tutaj. Przycisk po prostu przestał działać i nie mogłem go uruchomić. Kiedy zauważyłem błąd i poprawiłem go na:
Znowu zaczęło działać. Absolutnie dziwne, jeśli o mnie chodzi, ale może pomaga to komuś, kto był tak zdesperowany jak ja.
źródło