Megosztás a következőn keresztül:


Objektumváltozó vagy Nincs beállítva blokkváltozó

Érvénytelen objektumváltozóra hivatkozik a rendszer. Ez a hiba több okból is előfordulhat:

  • Egy változó típus megadása nélkül lett deklarálva. Ha egy változó típus megadása nélkül van deklarálva, alapértelmezés szerint be kell gépelnie Object.

    Egy deklarált Dim x változó például egy deklarált változó típusával Object;Stringlenne deklarálvaDim x As String.

    Jótanács

    Az Option Strict utasítás nem engedélyezi az implicit gépelést, amely típust Object eredményez. Ha kihagyja a típust, fordítási időhiba lép fel. Lásd a Szigorú utasítás lehetőséget.

  • Egy olyan objektumra próbál hivatkozni, amely a következőre Nothinglett beállítva: .

  • Olyan tömbváltozó egyik eleméhez próbál hozzáférni, amely nem lett megfelelően deklarálva.

    Egy deklarált products() As String tömb például aktiválja a hibát, ha a tömb products(3) = "Widget"egy elemére próbál hivatkozni. A tömb nem rendelkezik elemekkel, és objektumként van kezelve.

  • A blokkon belüli With...End With kódhoz a blokk inicializálása előtt próbál hozzáférni. A With...End With blokkokat inicializálni kell az utasítás belépési pontjának With végrehajtásával.

Megjegyzés:

A Visual Basic vagy a VBA korábbi verzióiban ezt a hibát az is kiváltotta, hogy egy értéket egy változóhoz rendelt a Set kulcsszó (x = "name" helyett Set x = "name") használata nélkül. A Set kulcsszó már nem érvényes a Visual Basic .Net-ben.

A hiba kijavítása

  1. On Ehhez Option Strict adja hozzá a következő kódot a fájl elejéhez:

    Option Strict On
    

    A projekt futtatásakor egy fordítóhiba jelenik meg a típus nélkül megadott változók hibalistájában .

  2. Ha nem szeretné engedélyezni Option Strict, keressen rá a kódban olyan változókra, amelyek típus (Dim x helyett) nélkül Dim x As Stringlettek megadva, és adja hozzá a kívánt típust a deklarációhoz.

  3. Győződjön meg arról, hogy nem a beállított objektumváltozóra Nothinghivatkozik. Keressen rá a kulcsszóra Nothing, és módosítsa a kódot úgy, hogy az objektum csak a hivatkozás után legyen beállítva Nothing .

  4. A tömbváltozók elérése előtt győződjön meg arról, hogy a tömbváltozók méretezve vannak. Hozzárendelhet egy dimenziót a tömb első létrehozásakor (Dim x(5) As String ahelyett Dim x() As String), vagy a ReDim kulcsszóval beállíthatja a tömb dimenzióit, mielőtt hozzá fér.

  5. Győződjön meg arról, hogy a With blokk inicializálva van az utasítás belépési pontjának With végrehajtásával.

Lásd még