Napraw błąd poza zakresem indeksu w Visual Basic for Applications (VBA)



Zaktualizowano maj 2024: Przestań otrzymywać komunikaty o błędach i spowolnij swój system dzięki naszemu narzędziu do optymalizacji. Pobierz teraz na pod tym linkiem
  1. Pobierz i zainstaluj narzędzie do naprawy tutaj.
  2. Pozwól mu przeskanować twój komputer.
  3. Narzędzie będzie wtedy napraw swój komputer.

Błąd poza zakresem indeksu VBA, ponieważ obiekt, do którego chcemy uzyskać dostęp, nie istnieje. Jest to rodzaj błędu w kodowaniu VBA i „Run Time Error 9”. Ważne jest, aby zrozumieć koncepcje pisania efektywnego kodu, a jeszcze ważniejsze jest zrozumienie błędu kodu VBA, aby skutecznie debugować kod.

Jeśli ty i twój błąd kodowania nie wiesz, co to za błąd, gdy jesteś nieobecny.

Lekarz nie może podawać pacjentowi leków bez znajomości choroby. Podczas gdy lekarz i pacjent wiedzą, że występuje choroba (błąd), ważne jest, aby zrozumieć chorobę (błąd) jako podawanie jej leków. Jeśli w pełni rozumiesz błąd, znacznie łatwiej jest znaleźć rozwiązanie.

Innym powodem może być brak standardowej drukarki na komputerze. Istnieje kilka rozwiązań tego problemu Błąd czasu wykonania Problem 9, więc wypróbuj je wszystkie we właściwej kolejności.

Dodanie domyślnej drukarki

  1. Podłącz drukarkę do komputera, podłącz przewód zasilający i włącz go.
  2. Wybierz „Start”> „Panel sterowania”> „Drukarki i faksy”.
  3. Kliknij „Dodaj drukarkę” i postępuj zgodnie z instrukcjami wyświetlanymi na ekranie, aby dodać domyślną drukarkę.

Sprawdź tablice

Możliwe, że ustawiłeś niepoprawną wartość dla elementu tablicy. Dlatego zaleca się ponowne sprawdzenie wartości zdefiniowanej dla elementu tablicy i upewnienie się, że jest poprawna. Sprawdź również deklarację tabeli i sprawdź górne i dolne granice. Jeśli zmieniono rozmiar tabel, należy użyć funkcji LBound i UBound do warunku dostępu. Sprawdź pisownię nazwy zmiennej, jeśli indeks jest zmienną.

Zdefiniuj liczbę elementów

W niektórych przypadkach możesz nie zdefiniować liczby elementów w kodzie, które spowodują błąd. Zaleca się określenie liczby elementów w tabeli za pomocą funkcji Dim lub ReDim.

Jak uniknąć błędu „Indeks błędu poza zakresem” w VBA

Unikaj używania funkcji zintegrowanych z programem Excel: ActiveWorkbook, ActiveSheet i Selection: Wprowadź wartości zwracane i preferuj wyrażenia kwalifikowane.



Aktualizacja z 2024 maja:

Za pomocą tego narzędzia możesz teraz zapobiegać problemom z komputerem, na przykład chroniąc przed utratą plików i złośliwym oprogramowaniem. Dodatkowo jest to świetny sposób na optymalizację komputera pod kątem maksymalnej wydajności. Program z łatwością naprawia typowe błędy, które mogą wystąpić w systemach Windows - nie ma potrzeby wielogodzinnego rozwiązywania problemów, gdy masz idealne rozwiązanie na wyciągnięcie ręki:

  • Krok 1: Pobierz narzędzie do naprawy i optymalizacji komputera (Windows 10, 8, 7, XP, Vista - Microsoft Gold Certified).
  • Krok 2: kliknij „Rozpocznij skanowanie”, Aby znaleźć problemy z rejestrem Windows, które mogą powodować problemy z komputerem.
  • Krok 3: kliknij „Naprawić wszystko”, Aby rozwiązać wszystkie problemy.

pobieranie



Użyj zintegrowanego tylko raz i tylko w większości zewnętrznych makr (subskrybentów) i przechwytuj podczas uruchamiania makra, np

ustaw wkb = ActiveWorkbook
ustaw wks = ActiveSheet
Zestaw soli = wybór
Podczas makr i te zintegrowane nazwy nie są wiarygodne, ale zwracane wartości są rejestrowane, np

Ustaw wkb = Workbooks.add 'zamiast Workbooks.add bez wprowadzania wartości zwracanej.
wkb.Activate 'zamiast Activeworkbook.Activate
Spróbuj także na przykład użyć wyrażeń kwalifikowanych

wkb.Sheets („Sheet3”). name = „foo” 'zamiast Sheets („Sheet3”). name = „foo”.
or

Ustaw newWks = wkb.Sheets.Add.
newWks.name = „bar” ”zamiast ActiveSheet.name =„ bar ”.
Używaj wyrażeń kwalifikowanych, np

newWks.name = „bar” ”zamiast„ xyz.Select ”, po którym następuje Selection.name =„ bar ”.
Metody te na ogół działają lepiej, dają mniej mylące wyniki, są bardziej odporne na refaktoryzację (na przykład przenoszenie wierszy kodu w ramach metod i między nimi) oraz działają lepiej we wszystkich wersjach programu Excel. Na przykład wybór zmienia się inaczej w zależności od wersji programu Excel podczas wykonywania makra.

Zauważ też, że prawdopodobnie zauważysz, że użycie bardziej wykwalifikowanych wyrażeń nie wymaga aktywacji prawie tylu funkcji. (Może to oznaczać, że ekran miga rzadziej dla użytkownika.) A więc cała linia Windows (wyrażenie). Aktywację można po prostu usunąć zamiast zastąpić wkb. Aktywuj w ogóle.

https://docs.microsoft.com/en-us/office/vba/language/reference/user-interface-help/subscript-out-of-range-error-9



Porada eksperta: To narzędzie naprawcze skanuje repozytoria i zastępuje uszkodzone lub brakujące pliki, jeśli żadna z tych metod nie zadziałała. Działa dobrze w większości przypadków, gdy problem jest spowodowany uszkodzeniem systemu. To narzędzie zoptymalizuje również Twój system, aby zmaksymalizować wydajność. Można go pobrać przez Kliknięcie tutaj