Dzień dobry
Proszę o pomoc z poniższym błędem. Windows 10 Pro, Microsoft Office 365
Zbudowałem aplikację Excel VBA opartą na formularzach. Aplikacja składa się z samego pliku aplikacji (xlsm) oraz drugiego pliku, z którym aplikacja jest połączona jako zewnętrzne źródło danych (xlsx) (utworzone połączenie DANE>POBIERZ DANE ZEWNĘTRZNE). Plik xlsx jest zapisany na dysku. Utworzonych jest 7 zapytań; nie są dużych rozmiarów ponieważ największe zapytanie posiada 270 wierszy, kolumn do 20 szt
Podczas logowania do aplikacji, połączenia są odświeżane poprzez zawarty kodzie "ActiveWorkbook.RefreshAll". Użytkownik na możliwość też ręcznego odświeżania poprzez przycisk (tu też zastosowany "ActiveWorkbook.RefreshAll"). Aplikację zamykamy poprzez przycisk (kod: ActiveWorkbook.Close savechanges:=True").
PROBLEM:
Przy scenariuszu 1: Logowania do aplikacji (jednorazowe odświeżenie) i zamknięciu jej, problem nie występuje.
Przy scenariuszu 2
- Logowanie (1 odświeżanie)
- Ręczne 2 odświeżanie
- Zamknięcie aplikacji
Excel chwilowo zawiesza się, wyłącza się i uruchamia ponownie. Problem jest większy gdy przy zamykaniu aplikacji, są włączone inne pliki excel, które również się wyłączają. Po automatycznym uruchomieniu excela po tym wystąpieniu, włącza się odzyskiwanie poprzednich plików ale często nie są zachowane w oczekiwanym stanie zapisu (brakuje danych).
SPOSTRZERZENIA
Obserwując "menedżer zadań>procesy", podczas pierwszego odświeżania danych, tworzone jest 7 podprocesów (3 Microsoft.Mashup.Container.Loader, 3 Host okna konsoli, 1 Excel). Po wykonaniu drugiego odświeżania zachowanie jest bardzo różne; czasem cały proces Excel potrafi zniknąć i po jakimś czasie się pojawić. Przy ręcznym, drugim odświeżaniu (w samym excel, nie wywołane kodem) dzieje się tak samo.
W trakcie zamykania aplikacji, za każdym razem w menedżer zadań tworzy się podproces Excel "Raportowanie błędów systemu"
Bardzo proszę o pomoc. Wykorzystałem chyba wszystkie możliwe kombinacje i po stronie kodu, i edycji zapytań. Edytowałem również ustawienia znalezione na tym forum i i na innych (ustawienia DDE, przyspieszanie grafiki, ustawienia ładowania danych).