VBA-dubbel

Excel VBA dubbel gegevenstype

VBA Double is een soort gegevenstype dat we toewijzen om variabelen te declareren. Dit is een verbeterde of langere versie van de "Single" datatype-variabele en wordt meestal gebruikt om langere decimalen op te slaan.

VBA Integer-gegevenstype converteert altijd decimale waarden naar de dichtstbijzijnde gehele waarde, het enkele gegevenstype kan maximaal twee cijfers achter de komma weergeven. Aan de andere kant kan het gegevenstype "Dubbel" waarden opslaan van -1.79769313486231E308 tot -4.94065645841247E324 voor negatieve waarden en voor positieve getallen kan het waarden opslaan van 4.94065645841247E-324 tot 1.79769313486232E308 .

Wat nog belangrijker is, het verbruikt 8 bytes aan geheugen.

Voorbeelden om VBA Double Data Type te gebruiken

U kunt deze VBA dubbele Excel-sjabloon hier downloaden - VBA dubbele Excel-sjabloon

Voorbeeld 1

Voordat we het voorbeeld van het gegevenstype "Dubbel" bekijken, kijken we naar de voorbeeldcodes van het gegevenstype "Geheel getal" en "Enkelvoudig" in VBA. Kijk naar de onderstaande VBA-code.

Code:

 Sub Integer_Ex () Dim k As Integer k = 2.569999947164 MsgBox k End Sub 

Ik heb de variabele "k" gedeclareerd als geheel getal en voor deze variabele heb ik de waarde toegewezen als 2,569999947164.

Laten we deze code handmatig uitvoeren of Excel-sneltoets F5 gebruiken om de uiteindelijke waarde in het berichtvenster in VBA te zien.

Het resultaat wordt weergegeven als 3 in plaats van het opgegeven nummer 2,569999947164. De reden omdat VBA het getal heeft geconverteerd naar het dichtstbijzijnde gehele getal, dwz 3.

Als de decimale waarde groter is dan 0,5, wordt deze geconverteerd naar het volgende gehele getal en als de decimale waarde kleiner is dan 0,51, wordt deze geconverteerd naar een waarde onder het gehele getal.

Nu zal ik het gegevenstype wijzigen van Integer in Single.

Code:

 Sub Integer_Ex () Dim k As Single k = 2.569999947164 MsgBox k End Sub 

Voer de code uit via sneltoets F5 en kijk welk nummer we deze keer krijgen.

Deze keer kregen we het resultaat als 2,57, dus deze keer kregen we twee decimalen. De oorspronkelijke waarde die we hebben toegewezen was 2,569999947164, dus in dit geval is de derde geplaatste decimale waarde 9, dus aangezien dit meer dan 5 is, is de decimale waarde op de tweede plaats 6 omgezet in 7.

Verander nu het gegevenstype van enkel naar dubbel.

Code:

 Sub Integer_Ex () Dim k As Double k = 2.569999947164 MsgBox k End Sub 

Voer nu de code handmatig uit en kijk hoeveel cijfers we krijgen in het berichtvenster.

Deze keer kreeg ik alle decimale waarden. We kunnen maximaal 14 cijfers achter de komma opgeven onder het gegevenstype Dubbel.

Als u een waarde invoert die groter is dan 14 decimalen, wordt de positie geconverteerd naar de dichtstbijzijnde waarde. Kijk voor een voorbeeld naar de onderstaande afbeelding.

Ik heb 15 decimalen getypt in plaats van 14, als ik op de Enter-toets druk, wordt het terug naar 14 cijfers.

In plaats van 59 (laatste twee cijfers), hebben we 6, dwz aangezien het laatste cijfer 9 is dat groter is dan 5, wordt het vorige nummer 5 geconverteerd naar het volgende gehele getal, dat wil zeggen 6

Voorbeeld # 2

Nu zal ik laten zien hoe u met celverwijzing in een werkblad kunt werken. Hieronder staan ​​de cijfers die ik in het werkblad heb ingevoerd.

Laten we beginnen met het vastleggen van dezelfde waarden voor de volgende door het gegevenstype INTEGER , ENKEL gegevenstype en DUBBEL type te gebruiken.

Hieronder staat de code om waarden van kolom A tot en met B te behouden door het gegevenstype INTEGER te gebruiken.

Code:

 Sub Double_Ex () Dim k As Integer Dim CellValue As Integer For k = 1 tot 6 CellValue = Cellen (k, 1) .Value Cells (k, 2) .Value = CellValue Volgende k End Sub 

Laten we de code door sneltoets F5 laten lopen om te zien welke waarden we in kolom B krijgen.

Als we Integer als datatype hebben gebruikt, hebben we alle hele getallen, dus zonder decimalen.

Nu zal ik gewoon het vba-gegevenstype van een variabele wijzigen van integer naar Single.

Code:

 Sub Double_Ex () Dim k As Integer Dim CellValue As Single For k = 1 tot 6 CellValue = Cellen (k, 1) .Value Cells (k, 2) .Value = CellValue Volgende k End Sub 

Deze code geeft het onderstaande resultaat.

Deze keer kregen we slechts twee decimalen.

Verandert nu het datatype van enkel naar dubbel.

Code:

 Sub Double_Ex () Dim k As Integer Dim CellValue As Double For k = 1 tot 6 CellValue = Cellen (k, 1) .Value Cells (k, 2) .Value = CellValue Volgende k End Sub 

Dit levert het onderstaande resultaat op.

We hebben exacte waarden uit kolom A.

Dingen om te onthouden

  • Dubbel is een verbeterd gegevenstype van het gegevenstype Enkel.
  • Het kan maximaal 14 decimalen bevatten.
  • Het verbruikt 8 bytes systeemgeheugen.