Cze wszystkim
Twoje makra nie ulegały awariom, a teraz Tak. To bałagan, nawet niefortunny!
SolidWorks i szerzej Windows nie informują Cię o wprowadzanych przez siebie zmianach,
Twoi koledzy z powodu braku czasu nie mówią Ci o szczegółach swoich aktualizacji tego i owego.
Wniosek: Twoje makra mogą być niezawodne tylko z czasem!
Moim zdaniem należy podjąć dwa środki ostrożności:
- uszkodzenie pliku zawierającego makro>> jest to rzadkie, ale odbywa się ewolucyjna archiwizacja (ewolucyjna = n°
w nazwach plików): zażądać importu z interfejsu programowania "VBA",
regularnie, lub gdy makro przybrało na wadze. Kopiowanie i wklejanie w programie Word daje tylko
tekst, ale dlaczego nie (hack).
- makro nie ma obsługi błędów >> użyciu co najmniej instrukcji "W przypadku błędu goto" lub "W przypadku błędu"
wznów następny" (kliknij słowo kluczowe w makrze [np. "błąd"], a następnie naciśnij F1, aby uzyskać więcej informacji na temat
pomoc lokalna lub online).
Przykład makr Excela z obsługą błędów w zarodku (słowa podkreślone):
Prywatny subskrybent Workbook_BeforeClose(Anuluj jako wartość logiczna)
W przypadku błędu GoTo: ErrorProcessingDo umieszczenia na początku każdej procedury (opartej na zdarzeniach lub nie)
'Systematycznie ukrywaj arkusz "Ustawienia"
Arkusze("Parametry"). Widoczny = Fałsz
'Wróć do powiększenia arkusza "Mała instrukcja obsługi", tak jak to było podczas otwierania pliku.
Arkusze("Mała instrukcja obsługi"). Aktywować
Zakres("A1:AI111"). Wybierz: ActiveWindow.Zoom = True: [A1]. Wybrać
'Wróć do powiększenia arkusza "EVAL_GLOBALE_EXPLO2015", tak jak to było podczas otwierania pliku.
Z arkuszami("EVAL_GLOBALE_EXPLO2015")
. Aktywować
Zakres("A1:S30"). Wybierz: ActiveWindow.Zoom = True: [B6]. Wybrać
'Wróć do wizualizacji w takim stanie, w jakim była podczas otwierania pliku.
[CTRL1] = 1: VisualTeaching 'Zobacz wszystkie nauki.
[CTRL2] = 1: VisualGroup' Wizualizuj pierwszą z grup uczniów.
'Wymuś tryb "Wejście włączone", tak jak podczas otwierania pliku.
. Unprotect
. Kształty("InputStatus"). TextFrame.Characters.Text = "Wejście włączone": [InputStatus] = Prawda
. Chronić
Zakończ się na
'Automatycznie zapisz plik przed jego zamknięciem.
ActiveWorkbook.Zapisz
Wyjdź z subwoofera
Leczenie: Etykieta
Zatrzymaj się 'W celu weryfikacji
"w przypadku gdy liście zmieniły swoją nazwę, na przykład
– Na wszelki wypadek...
"Przetwarzanie błędów nie jest tutaj zaprogramowane...
Koniec subwoofera
Jeśli wiersz w polu W przypadku błędu GoTo Error jest "gówniany", powoduje błąd podczas wykonywania makra, a następnie zatrzymuje się na instrukcji "Stop". Wskazuje to na błąd, jest to pierwszy krok.
Mała sztuczka, aby zlokalizować "gównianą" linię> kliknij (
) krok po kroku, aby uruchomić makro i rozwinąć je, > żółty ślad wskazuje linię, która ma zostać wykonana. Gdy tylko pojawi się błąd, gówniana linia nie jest uruchamiana, a proces jest kontynuowany poniżej etykiety ErrorProcessing:.
Minimalna obsługa błędów to "Stop" (słowo kluczowe) w obszarze ErrorHandling: . Stamtąd możesz pobrać numer błędu i użyć go do przetworzenia błędu, ostrzeżenia, ....
Miłego dnia.