Jak opravit chybu „Dolní index mimo rozsah“ v jazyce Visual Basic pro aplikace?



Vyzkoušejte Náš Nástroj Pro Odstranění Problémů

Visual Basic for Applications (VBA) je implementace programovacího jazyka Visual Basic vyvinutého společností Microsoft. VBA lze použít pro povolení UDF, automatizaci úkolů a pro přístup k WinAPI prostřednictvím DLL. Poměrně nedávno však přichází spousta zpráv, kde uživatelé nemohou provádět určité příkazy a „ Dolní index mimo rozsah, chyba 9 “Vyskočí, zatímco se o to snaží.



Chyba indexu mimo rozsah



Co způsobuje chybu „Dolní index mimo rozsah“ ve VBA?

Po obdržení mnoha zpráv od více uživatelů jsme se rozhodli problém prozkoumat a vymysleli jsme sadu řešení, jak jej úplně opravit. Podívali jsme se také na důvody, kvůli kterým se spouští, a uvedli jsme je následovně.



  • Neexistující prvek: V některých případech je možné, že jste v příkazu odkazovali na neexistující prvek. Je možné, že dolní index je buď větší, nebo menší než rozsah možných dolních indexů nebo dimenzí, které v tomto okamžiku v aplikaci nemuseli být matici přiřazeny.
  • Nedefinované prvky: Je možné, že jste neidentifikovali počet prvků v kódu, je důležité, aby byl počet prvků v poli definován pomocí příkazů „Dim“ nebo „ReDim“.
  • Nesprávný člen sbírky: V některých případech mohl uživatel odkazovat na člena kolekce, který neexistuje. Pokud je proveden nesprávný odkaz na člena kolekce, může být spuštěna tato chyba.
  • Zkratka: Je možné, že jste použili zkratkovou formu dolního indexu a implicitně zadali neplatný prvek. Je důležité použít platný název klíče.

Nyní, když máte základní znalosti o povaze problému, přejdeme k řešení. Nezapomeňte je implementovat v konkrétním pořadí, v jakém jsou uvedeny, aby nedocházelo ke konfliktům.

Řešení 1: Kontrola polí

Je možné, že jste pro prvek Array definovali nesprávnou hodnotu. Proto se doporučuje znovu zkontrolovat hodnotu, kterou jste definovali pro prvek Array, a ujistit se, že je správná. Nezapomeňte také zkontrolovat deklaraci pole a ověřit horní a dolní mez. Pokud byla pole redimensioned, ujistěte se, že používáte LBound a UBound funkce pro podmínku přístupu. Pokud je index proměnnou, zkontrolujte pravopis názvu proměnné.

Pole ve VBA Excel



Řešení 2: Zadání počtu prvků

V některých případech je možné, že jste ve svém kódu nemuseli definovat počet prvků, kvůli kterým se chyba spouští. Doporučuje se zadat počet prvků v poli pomocí Žádný nebo ReDim funkce.

Pomocí Dim a ReDim určete počet prvků

Řešení 3: Změna konstrukce

Tato chyba se běžně aktivuje, když uživatel zadá nesprávného nebo neexistujícího člena kolekce. Proto se místo zadání indexových prvků doporučuje přistupovat pomocí „ Pro každého… další “Konstrukt.

Pomocí konstrukce „For each… Next“

Řešení 4: Kontrola názvu klíče a indexu

V některých případech je možné, že jste mohli použít zkratkovou formu dolního indexu a určuje neplatný prvek. Proto se doporučuje použít a platný klíč název a index pro sbírku.

Použití platného názvu klíče

2 minuty čtení