VBA Long (esimerkki) - Vaiheittainen opas pitkille tietotyypeille Excel VBA: ssa

Mikä on pitkä tietotyyppi VBA: ssa?

Long on VBA: n tietotyyppi, jota käytetään numeeristen arvojen tallentamiseen, tiedämme, että kokonaislukulla on myös numeerisia arvoja, mutta Long on erilainen kuin kokonaisluvut, koska tietojen tallennusalue on erittäin suuri, jos pitkä tietotyyppi on myös pitkä tietotyypissä voimme pitää myös desimaaliarvoja, tämä on sisäänrakennettu tietotyyppi.

"Pitkällä", kuten nimessä sanotaan, sen pitäisi olla jonkin suuren arvon arvo. "Pitkä" on numeerinen tietotyyppi VBA Excelissä.

Excel VBA: n pitkä tietotyyppi voi pitää arvot 0: sta 2: een, 147, 483, 647 positiivisille numeroille, ja negatiiviselle luvulle 0 - -2, 147, 483, 648.

VBA Long -tietotyyppi vaatii 4 tavua muistitallennusta tietokoneellesi. Tämä on kaksinkertainen kokonaislukutietotyyppinen muuttujamuisti (2 tavua) ja puolet kaksoistietotyyppimuuttujamuistista (8 tavua)

En ole koskaan nähnyt skenaariota, jossa haluan hyödyntää VBA Long -tietotyypin rajaa täysimääräisesti lyhyellä urallani. Mutta näytän sinulle joitain esimerkkejä ymmärtääksesi sen paremmin.

Esimerkkejä VBA: n pitkistä tietotyypeistä

Alla on esimerkkejä excel VBA Long -tietotyypeistä.

VBA pitkä esimerkki # 1

Heti kun ilmoitat muuttujan tietotyypiksi Pitkä, voit määrittää arvot välillä -2, 147, 483, 648 - 2, 147, 483, 648.

Ilmoita esimerkiksi muuttuja pitkäksi tietotyypiksi.

Koodi:

Sub Long_Example1 () Dim k As Long End Sub

Määritetään arvo laskentataulukon rivien kokonaismääränä.

Excel-laskentataulukon koodin kokonaislukurivien saamiseksi on “Rivit. Kreivi"

Koodi:

Sub Long_Example1 () Dim k As Long k = Rivit.Määrä End Sub

Näytä nyt arvo viestiruudussa.

Koodi:

Sub Long_Example1 () Dim k As Long k = Rivit. Count MsgBox k End Sub

Suorita tämä koodi ja katso laskentataulukon rivien kokonaismäärä.

Sen mukaan laskentataulukossa on yli miljoona riviä.

Nyt ymmärryksen parantamiseksi vaihdan tietotyypin LONG-arvosta INTEGER-muotoon.

Koodi:

Alipitkä_esimerkki1 () Hämärä k kokonaislukuna k = Rivit.

Jos suoritan VBA-koodin, saan virheilmoituksen "Overflow".

Syy miksi saimme tämän virheen VBA: ssa, koska tietotyyppi ”Kokonaisluku” voi pitää arvot vain välillä -31768 - 32767. Tässä tapauksessa ”Rivit. Laskuri ”palauttaa luvun, joka on suurempi kuin” kokonaisluku ”-muuttujan raja.

Yli miljoonan arvon määrittäminen muuttujalle, johon mahtuu vain 32767, aiheuttaa tässä ylivuotovirheen.

VBA pitkä esimerkki # 2

Etsi viimeinen rivi käyttämällä pitkää muuttujaa

Viimeinen käytetty laskentataulukon rivi on tärkein koodaus. Viimeisen käytetyn taulukon rivin löytäminen edellyttää muuttujan ilmoittamista. Muuttujan ilmoittaminen ja tietotyypin määrittäminen vaatii järkeä.

Oletetaan, että datasi päättyy 25000 rivillä, kuten alla olevassa kuvassa näkyy.

Nyt tiedän, että viimeksi käytetty rivinumero on 25000. Tätä varten emme tarvitse LONG-tietotyyppiä, koska INTEGER-tietotyyppi voi antaa minulle viimeisen rivin.

Katso tietosi alla olevasta koodista.

Koodi:

Sub Long_Example1 () Dim k As Integer k = Solut (Rivit.Määrä, 1) .End (xlUp) .Rivi MsgBox k End Sub

Jos suoritan tämän koodin, saan tällä hetkellä käyttämäni laskentataulukon viimeisen käytetyn rivinumeron.

Kooderina on tärkeää tietää tulevaisuudessa saamiesi tietojen koko. Koska tällä hetkellä, data voidaan päättyy 25000 th rivi, mutta jos data kasvaa tämän ”Kokonaisluku” raja, eli 32767, se aiheuttaa ylivuodon virhe.

Esimerkiksi kasvatan tiedot 32768 th riville.

Jos suoritan saman koodin uudelleen, en saa arvoa. Pikemminkin saan virheen kuten alla.

Muista, että olen korottanut rajaa vain yhdellä kokonaisluvun rajan yli, joten sain ylivuotovirheen.

Joten on tärkeää tietää tietojesi koko, ennen kuin määrität tietotyypin muuttujalle. Aina on parempi vaihtoehto ilmoittaa muuttuja ”LONG” ajattelematta datasi kokoa tulevaisuudessa.

Vaihtoehdot Excel VBA pitkälle muuttujalle

Sinun on jo mietittävä, mitä jos haluamme pitää arvon yli pitkän muuttujan rajan. Tätä varten meidän on käytettävä erilaisia ​​tietotyyppejä, ts. Joko VBA "String" tai "Variant".

Muista, että kun se ylittää numeron 2147483647, saamme VBA: ssa ylivuotovirheen LONG-tietotyypillä. Jos haluat tallentaa enemmän kuin tämän numeron, meidän on käytettävä tietotyyppiä "String" tai "Variant".

Jouselle

Koodi:

Sub Long_Example2 () Dim k As String k = 2147483648 MsgBox k End Sub

Variantille

Koodi:

Sub Long_Example2 () Dim k Variantti k = 2147483648 MsgBox k End Sub

Kun suoritamme yllä olevat koodit, se näyttää mainitun numeron.

Mielenkiintoisia artikkeleita...