VBA-variant

Excel VBA-variantgegevenstype

Variantgegevenstype in VBA is een universeel gegevenstype dat elk gegevenstype kan bevatten, maar bij het toewijzen van het gegevenstype moeten we het woord "Variant" gebruiken.

We weten allemaal hoe belangrijk variabelen zijn in VBA-projecten. Zodra de variabele is gedeclareerd, moeten we een gegevenstype aan de gedeclareerde variabelen toewijzen. Toewijzing van gegevenstypen in VBA is afhankelijk van het soort gegevens dat we moeten toewijzen aan de gedeclareerde variabelen.

Kijk voor een voorbeeld naar de onderstaande code.

In de bovenstaande code heb ik de variabele gedeclareerd als "IntegerNumber" en ik heb het gegevenstype toegewezen als "Integer" .

Voordat ik het gegevenstype aan de variabele toewijs, moet ik me bewust zijn van de beperkingen van de variabele. Omdat ik het gegevenstype Integer heb toegewezen, kan mijn variabele de getallen van -32768 tot 32767 bevatten.

Alles wat meer is dan de limiet van de datatypelimiet, zal een fout veroorzaken. Dus als we meer dan 32767-waarden willen opslaan, moeten we het verschillende gegevenstype toewijzen dat meer dan 32767 kan bevatten.

Om deze beperking te omzeilen, hebben we een universeel gegevenstype "Variant". Dit artikel toont u de volledige gids van een variantgegevenstype.

Hoe een variantgegevenstype aangeven?

We kunnen het variantgegevenstype declareren als normaal gegevenstype, maar bij het toewijzen van het gegevenstype moeten we het woord “Variant” gebruiken.

Code:

 Sub Variant_Example1 () Dim MyNumber As Variant End Sub 

Dit zorgt ervoor dat de variabele nu met elke soort gegevens werkt. We kunnen alle nummers, tekenreeksen, datums en vele andere dingen toewijzen.

Hieronder is de demonstratie van hetzelfde.

Code:

 Sub Variant_Example1 () Dim MonthName As Variant Dim MyDate As Variant Dim MyNumber As Variant Dim MyName As Variant MonthName = "January" MyDate = "24-04-2019" MyNumber = 4563 MyName = "Mijn naam is Excel VBA" End Sub 

In het bovenstaande heb ik een datum aan de variabele toegewezen, nummer aan de variabele, een string aan de variabele. Dus met het gegevenstype Variant hoeven we ons geen zorgen te maken over wat voor soort gegevens we gaan opslaan of eraan toewijzen.

Zodra we een variabele declareren als Variant, hoeven we ons tijdens het coderen geen zorgen te maken over ons datatype ergens in het midden van het project. Dit maakt de variabele om flexibel naar onze behoeften te werken. Waarschijnlijk kunnen we met een enkele variabele onze operaties in het hele project uitvoeren.

VBA-variant vereist geen expliciete manier

De algemene procedure om een ​​VBA-variabele te declareren, is om de variabele eerst een naam te geven en vervolgens het gegevenstype eraan toe te wijzen. Hieronder ziet u een voorbeeld van hetzelfde.

Dit is de expliciete manier om de variabele te declareren. Wanneer we echter het gegevenstype Variant declareren, hoeven we ze niet expliciet te declareren, maar kunnen we de variabele een naam geven en het datatype-gedeelte weglaten.

Code:

 Sub Variant_Example1 () Dim MyNumber End Sub 

In de bovenstaande code heb ik de variabele de naam "MyNumber" gegeven, maar nadat ik de variabele een naam heb gegeven, heb ik er geen enkel gegevenstype aan toegewezen.

Ik heb As [Data Type Name] -deel weggelaten omdat het moment dat we het gegevenstypetoewijzingsdeel negeren, onveranderlijk Variant wordt.

Dingen om te onthouden

Hoewel het gegevenstype "Variant" flexibel is met gegevens die we gaan opslaan, is dit niet het populaire gegevenstype. Ziet er vreemd uit, maar absoluut WAAR. Tenzij er een specifieke reden is om mensen te gebruiken, vermijdt u het gebruik van dit gegevenstype. Hieronder staan ​​enkele redenen om het gebruik van Variant te vermijden.

  • Het negeert alle fouten met niet-overeenkomende gegevens.
  • Variant-gegevenstype beperkt ons van toegang tot de IntelliSense-lijst.
  • VBA raadt altijd het best mogelijke gegevenstype en wijst het dienovereenkomstig toe.
  • In het geval van een gegevenstypelimiet voor geheel getal Het gegevenstype van de variant stelt ons niet op de hoogte van het moment dat het de 32767-limieten overschrijdt.