Hoe vba-fout 13 op te lossen?

Een type komt niet overeen (fout 13) wanneer u probeert een waarde op te geven voor een variabele die niet overeenkomt met het gegevenstype. Als u in VBA een variabele declareert, moet u het gegevenstype instellen, en als u een andere waarde dan dat gegevenstype opgeeft, krijgt u het mismatch-fouttype 13.

type mismatch-fout

In deze tutorial zullen we zien wat de mogelijke situaties zijn waarin runtime-fout 13 kan optreden tijdens het uitvoeren van een code.

Fout bij niet-overeenkomende datumtype

In VBA is er een specifiek gegevenstype om datums te verwerken en soms gebeurt dit wanneer u een variabele gebruikt om een datum op te slaan en de waarde die u opgeeft anders is.

In de volgende code heb ik een variabele als datum gedeclareerd en vervolgens de waarde van cel A1 gespecificeerd, waar ik alleen een datum zou moeten hebben. Maar zoals u kunt zien, heeft de datum die ik in cel 1 heb niet het juiste formaat, VBA kan deze niet als datum identificeren.

 Sub myMacro() Dim iVal As Date iVal = Range("A1").Value End Sub

Type mismatch-fout met nummer

Je krijgt dezelfde foutmelding als je met getallen te maken hebt, waarbij je een andere waarde krijgt als je een getal aan een variabele probeert op te geven.

In het volgende voorbeeld heb je een fout in cel A1, die een numerieke waarde zou moeten zijn. Dus wanneer u de code uitvoert, toont VBA u runtime-fout 13 omdat de waarde niet als een getal kan worden geïdentificeerd.

 Sub myMacro() Dim iNum As Long iNum = Range("A6").Value End Sub

Runtimefout 6 Overloop

In VBA zijn er verschillende gegevenstypen voor het omgaan met getallen en elk van deze gegevenstypen heeft een reeks getallen die u eraan kunt toewijzen. Maar er is een probleem wanneer u een getal opgeeft dat buiten het bereik van het gegevenstype valt.

In dit geval laten we u runtime error 6 overflow zien, wat aangeeft dat u het gegevenstype moet wijzigen en dat het door u opgegeven getal buiten bereik ligt.

Andere situaties waarin dit kan gebeuren

Er kunnen zich andere situaties voordoen waarin u te maken kunt krijgen met runtimefout 14: Type komt niet overeen.

  1. Wanneer u een bereik aan een tabel toewijst, maar dat bereik bestaat uit slechts één cel.
  2. Wanneer u een variabele als object definieert, maar bij het schrijven van de code een ander object specificeert dan die variabele.
  3. Wanneer u een variabele als werkblad opgeeft, maar de verzameling werkbladen in code gebruikt, of omgekeerd.

Type-mismatch oplossen (fout 13)

De beste manier om met deze fout om te gaan, is door toegang te krijgen tot de instructie om een specifieke coderegel uit te voeren of een berichtvenster voor de gebruiker weer te geven wanneer de fout optreedt. Maar je kunt het terrein ook stap voor stap controleren voordat je ermee gaat hardlopen. Hiervoor moet u de VBA-foutopsporingstool gebruiken, of u kunt ook de sneltoets F8 gebruiken.

Voeg een reactie toe

Je e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *