Průvodci

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

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ží.

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 bodě aplikace nemusejí být přiřazeny matici.
  • 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é.

Ř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í Ztlumit nebo ReDim funkce.

Ř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 určení indexových prvků doporučuje přistupovat k „Pro každého… Další“Konstrukt.

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

V některých případech je možné, že jste mohli použít zkrácenou 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.

$config[zx-auto] not found$config[zx-overlay] not found