Udostępnij za pośrednictwem


Zmienna obiektu lub nie ustawiono zmiennej blokowej

Przywoływana jest nieprawidłowa zmienna obiektu. Ten błąd może wystąpić z kilku powodów:

  • Zmienna została zadeklarowana bez określania typu. Jeśli zmienna jest zadeklarowana bez określania typu, domyślnie ma typ Object.

    Na przykład zmienna zadeklarowana Dim x przy użyciu będzie typu Object; zmienna zadeklarowana z Dim x As String typem będzie typu String.

    Wskazówka

    Instrukcja Option Strict nie zezwala na niejawne wpisywanie, które powoduje Object typ. Jeśli pominiesz typ, wystąpi błąd czasu kompilacji. Zobacz opcję Strict, instrukcja.

  • Próbujesz odwołać się do obiektu, który został ustawiony na Nothing.

  • Próbujesz uzyskać dostęp do elementu zmiennej tablicowej, która nie została prawidłowo zadeklarowana.

    Na przykład tablica zadeklarowana jako products() As String spowoduje wyzwolenie błędu, jeśli spróbujesz odwołać się do elementu tablicy products(3) = "Widget". Tablica nie ma żadnych elementów i jest traktowana jako obiekt.

  • Próbujesz uzyskać dostęp do kodu w With...End With bloku przed zainicjowaniem bloku. Blok With...End With musi zostać zainicjowany przez wykonanie punktu wejścia instrukcji With .

Uwaga / Notatka

We wcześniejszych wersjach języka Visual Basic lub VBA ten błąd został również wyzwolony przez przypisanie wartości do zmiennej bez użycia słowa kluczowego Set (x = "name" zamiast Set x = "name"). Słowo Set kluczowe nie jest już prawidłowe w języku Visual Basic .Net.

Aby naprawić ten błąd

  1. Ustaw Option Strict wartość na On , dodając następujący kod na początku pliku:

    Option Strict On
    

    Po uruchomieniu projektu w liście błędów zostanie wyświetlony błąd kompilatora dla dowolnej zmiennej określonej bez typu.

  2. Jeśli nie chcesz włączać Option Strict, wyszukaj w kodzie dowolne zmienne, które zostały określone bez typu (Dim x zamiast Dim x As String) i dodaj zamierzony typ do deklaracji.

  3. Upewnij się, że nie odwołujesz się do zmiennej obiektu, która została ustawiona na Nothing. Wyszukaj słowo kluczowe Nothingi zrewiduj kod, tak aby obiekt nie został ustawiony do Nothing momentu odwołania się do niego.

  4. Przed uzyskaniem dostępu do nich upewnij się, że wszystkie zmienne tablicowe są wymiarami. Wymiar można przypisać podczas pierwszego tworzenia tablicy (Dim x(5) As String zamiast Dim x() As String), lub użyć ReDim słowa kluczowego , aby ustawić wymiary tablicy przed pierwszym uzyskaniem do niej dostępu.

  5. Upewnij się, że With blok został zainicjowany przez wykonanie punktu wejścia instrukcji With .

Zobacz także