Delen via


Objectvariabele of met blokvariabele niet ingesteld

Er wordt naar een ongeldige objectvariabele verwezen. Deze fout kan om verschillende redenen optreden:

  • Een variabele is gedeclareerd zonder een type op te geven. Als een variabele wordt gedeclareerd zonder een type op te geven, wordt deze standaard getypt Object.

    Een variabele die is gedeclareerd, Dim x zou bijvoorbeeld van het type Object; zijn waarmee een variabele is StringgedeclareerdDim x As String.

    Aanbeveling

    De Option Strict instructie staat impliciet typen dat resulteert in een Object type niet toe. Als u het type weglaat, treedt er een compilatietijdfout op. Zie de strikte instructie van optie.

  • U probeert te verwijzen naar een object dat is ingesteld op Nothing.

  • U probeert toegang te krijgen tot een element van een matrixvariabele die niet juist is gedeclareerd.

    Een matrix die als zodanig is gedeclareerd products() As String , activeert bijvoorbeeld de fout als u probeert te verwijzen naar een element van de matrix products(3) = "Widget". De matrix heeft geen elementen en wordt behandeld als een object.

  • U probeert code binnen een With...End With blok te openen voordat het blok is geïnitialiseerd. Een With...End With blok moet worden geïnitialiseerd door het invoerpunt van de With instructie uit te voeren.

Opmerking

In eerdere versies van Visual Basic of VBA is deze fout ook geactiveerd door een waarde toe te wijzen aan een variabele zonder het Set trefwoord (x = "name" in plaats van Set x = "name"). Het Set trefwoord is niet meer geldig in Visual Basic .Net.

Deze fout corrigeren

  1. Ingesteld Option Strict op On door de volgende code toe te voegen aan het begin van het bestand:

    Option Strict On
    

    Wanneer u het project uitvoert, wordt er een compilerfout weergegeven in de lijst met fouten voor een variabele die is opgegeven zonder een type.

  2. Als u dit niet wilt inschakelen Option Strict, zoekt u in uw code naar variabelen die zijn opgegeven zonder een type (Dim x in plaats van Dim x As String) en voegt u het beoogde type toe aan de declaratie.

  3. Zorg ervoor dat u niet verwijst naar een objectvariabele die is ingesteld op Nothing. Zoek in uw code naar het trefwoord Nothingen pas de code aan zodat het object pas is ingesteld Nothing nadat u ernaar hebt verwezen.

  4. Zorg ervoor dat eventuele matrixvariabelen worden gedimensioneerd voordat u ze opent. U kunt een dimensie toewijzen wanneer u de matrix voor het eerst maakt (Dim x(5) As String in plaats van Dim x() As String) of het ReDim trefwoord gebruiken om de dimensies van de matrix in te stellen voordat u deze voor het eerst opent.

  5. Zorg ervoor dat uw With blok is geïnitialiseerd door het invoerpunt van de With instructie uit te voeren.

Zie ook