VBA kaksinkertainen | Kuinka ilmoittaa kaksinkertainen tietotyyppi VBA: ssa?

Excel VBA Double Data Type

VBA Double on eräänlainen tietotyyppi, jonka annamme ilmoitettaville muuttujille. Se on parannettu tai pidempi versio ”Single” -tietomuuttujasta ja sitä käytetään yleensä pitempien desimaalien tallentamiseen.

VBA-kokonaislukutietotyyppi muuntaa desimaaliarvot aina lähimpään kokonaislukuun, yksittäinen tietotyyppi voi näyttää enintään kaksi desimaalilukua. Toisaalta ”Double” -tietotyyppi voi tallentaa arvot välillä -1,79769313486231E308 - -4,94065645841247E324 negatiivisille arvoille ja positiivisille luvuille arvot välillä 4,94065645841247E-324 - 1,79769313486232E308 .

Vielä tärkeämpää on, että se kuluttaa 8 tavua muistia.

Esimerkkejä VBA Double Data Type -tyypin käytöstä

Voit ladata tämän VBA Double Excel -mallin täältä - VBA Double Excel -malli

Esimerkki 1

Ennen kuin näemme esimerkin kaksoistietotyypistä, tarkastellaan VBA: n kokonaisluku- ja yksittäistietotyyppien esimerkkikoodeja. Katso alla olevaa VBA-koodia.

Koodi:

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

Olen ilmoittanut muuttujan “k” kokonaisluvuksi ja tälle muuttujalle olen määrittänyt arvon 2,569999947164.

Suoritetaan tämä koodi manuaalisesti tai käyttämällä Excel-pikanäppäintä F5, jotta näet lopullisen arvon VBA: n viestiruudussa.

Tulos näkyy 3: na toimitetun numeron 2.569999947164 sijaan. VBA: n syy on muuttanut numeron lähimpään kokonaislukuun eli 3.

Kun desimaaliarvo on yli 0,5, se muuntuu seuraavaksi kokonaislukuarvoksi ja kun desimaaliarvo on alle 0,51, se muuntuu alle kokonaislukuarvon.

Nyt vaihdan tietotyypin Kokonaisluvusta Yhdeksi.

Koodi:

 Sub Integer_Ex () Dim k yhtenäinen k = 2.569999947164 MsgBox k End Sub 

Suorita koodi pikanäppäimen F5 avulla ja katso, minkä numeron saamme tällä kertaa.

Tällä kertaa tulos oli 2,57, joten tällä kertaa kaksi desimaalia. Alkuperäinen määräämämme arvo oli 2,569999947164, joten tässä tapauksessa kolmanneksi sijoitettu desimaaliarvo on 9, joten koska tämä on enemmän kuin 5, se on muuttanut toisen paikan desimaaliarvon 6 arvoksi 7.

Vaihda nyt tietotyyppi yhdestä kaksinkertaiseksi.

Koodi:

 Sub Integer_Ex () Dim k As Double k = 2,569999947164 MsgBox k End Sub 

Suorita koodi nyt manuaalisesti ja katso kuinka monta numeroa saamme viestiruudun tuloksessa.

Tällä kertaa saimme kaikki desimaaliarvot. Voimme toimittaa enintään 14 numeroa desimaaleja kaksoistietotyypillä.

Jos annat minkä tahansa arvon, joka on yli 14 desimaalin tarkkuudella, muunnetaan lähimpään arvoon. Katso esimerkki alla olevasta kuvasta.

Olen kirjoittanut 15 desimaalia 14 sijasta. Jos painan Enter-näppäintä, se palaa vain 14 numeroon.

59: n (kahden viimeisen numeron) sijasta saimme 6 eli koska viimeinen luku on 9, mikä on suurempi kuin 5 edellinen luku 5 muunnetaan seuraavaksi kokonaisluvuksi eli 6

Esimerkki 2

Nyt näytän kuinka työskennellä soluviittauksen kanssa laskentataulukossa. Alla on numerot, jotka olen kirjoittanut taulukkoon.

Aloitetaan samojen arvojen sieppaaminen seuraavalle käyttämällä INTEGER- tietotyyppiä, SINGLE- tietotyyppiä ja DOUBLE- tyyppiä.

Alla on koodi, joka säilyttää arvot sarakkeista A - B käyttämällä INTEGER-tietotyyppiä.

Koodi:

 Sub Double_Ex () Dim k kokonaislukuna Dim CellValue kokonaislukuna k = 1-6 CellValue = Solut (k, 1). Value Solut (k, 2). Value = CellValue Seuraava k End Sub 

Suoritetaan koodi pikanäppäimen F5 kautta, jotta näet, mitkä arvot saamme sarakkeesta B.

Kun olemme käyttäneet kokonaislukua tietotyyppinä, saimme kaikki kokonaisluvut eli ilman desimaaleja.

Nyt muutan vain muuttujan vba-tietotyypin kokonaisluvusta Single-arvoksi.

Koodi:

 Sub Double_Ex () Dim k kokonaislukuna Dim CellValue yksittäisenä For k = 1-6 CellValue = Solut (k, 1). Value Solut (k, 2). Value = CellValue Seuraava k End Sub 

Tämä koodi antaa alla olevan tuloksen.

Tällä kertaa saimme vain kaksi desimaalia.

Muuttaa nyt tietotyypin yksittäisestä kaksinkertaiseksi.

Koodi:

 Sub Double_Ex () Dim k kokonaislukuna Dim CellValue kaksinkertaisena For k = 1-6 CellValue = Solut (k, 1). Value Solut (k, 2). Value = CellValue Seuraava k End Sub 

Tämä palauttaa alla olevan tuloksen.

Olemme saaneet tarkat arvot sarakkeesta A.

Muistettavaa

  • Double on yhden tietotyypin parannettu tietotyyppi.
  • Siihen mahtuu 14 desimaalin tarkkuudella.
  • Se kuluttaa 8 tavua järjestelmämuistia.

$config[zx-auto] not found$config[zx-overlay] not found