Sdílet prostřednictvím


Objektová proměnná nebo proměnná bloku With nebyla nastavena.

Odkazuje se na neplatnou proměnnou objektu. K této chybě může dojít z několika důvodů:

  • Proměnná byla deklarována bez zadání typu. Pokud je proměnná deklarována bez zadání typu, výchozí hodnota je typ Object.

    Například proměnná deklarovaná Dim x pomocí by byla typu Object; proměnná deklarovaná Dim x As String s typem typu String.

    Tip

    Příkaz Option Strict nepovoluje implicitní zadávání, které má za následek typ Object . Pokud tento typ vynecháte, dojde k chybě v době kompilace. Viz příkaz Option Strict.

  • Pokoušíte se odkazovat na objekt, který byl nastaven na Nothing.

  • Pokoušíte se získat přístup k prvku proměnné pole, která nebyla správně deklarována.

    Například pole deklarované jako products() As String aktivuje chybu, pokud se pokusíte odkazovat na prvek pole products(3) = "Widget". Pole nemá žádné prvky a považuje se za objekt.

  • Před inicializacem bloku se pokoušíte získat přístup k kódu v With...End With rámci bloku. With...End With Blok musí být inicializován spuštěním vstupního With bodu příkazu.

Poznámka:

V dřívějších verzích jazyka Visual Basic nebo VBA byla tato chyba aktivována také přiřazením hodnoty proměnné bez použití klíčového Set Set x = "name"slova (x = "name"místo). Klíčové Set slovo již není platné v jazyce Visual Basic .Net.

Oprava této chyby

  1. Nastavte Option Strict na On začátek souboru následující kód:

    Option Strict On
    

    Při spuštění projektu se v seznamu chyb zobrazí chyba kompilátoru pro libovolnou zadanou proměnnou bez typu.

  2. Pokud nechcete povolit Option Strict, vyhledejte v kódu všechny proměnné, které byly zadány bez typu (Dim x místo Dim x As String) a přidejte do deklarace zamýšlený typ.

  3. Ujistěte se, že nepoužíváte odkaz na proměnnou objektu, která byla nastavena na Nothinghodnotu . Vyhledejte klíčové slovo Nothinga upravte kód tak, aby nebyl objekt nastavený, Nothing dokud na něj neodkazujete.

  4. Před přístupem k proměnným pole se ujistěte, že jsou všechny proměnné pole dimenze. Dimenze můžete přiřadit při prvním vytvoření pole (Dim x(5) As String místo Dim x() As String) nebo pomocí klíčového ReDim slova nastavit dimenze pole před prvním přístupem.

  5. Ujistěte se, že With je blok inicializován spuštěním vstupního With bodu příkazu.

Viz také