VBA ilgas duomenų tipas (kintamasis kintamasis)

Ilgas kintamasis tipas

VBA Ilgas duomenų tipas naudojamas labai ilgoms duomenų reikšmėms saugoti (nuo -2 147 483 648 iki 2 147 483 648). Jame gali būti saugomi tik sveiki skaičiai (be dešimtainių skaičių).

Norėdami deklaruoti ilgą kintamąjį, naudokite „Dim Statement“ (trumpinys „Dimension“):

1 Dim lngA kaip ilgas

Tada, norėdami priskirti kintamojo vertę, tiesiog naudokite lygybės ženklą:

1 lngA = 30000

Įtraukimas į procedūrą atrodo taip:

12345678 Antrinis pavyzdys ()“paskelbti ilgą kintamąjįDim lngA kaip ilgas“užpildykite ilgą kintamąjįlngA = 30000“parodyti pranešimų laukelį„MsgBox lngA“Pabaiga Sub

Jei paleisite aukščiau esantį kodą, bus parodytas šis pranešimų langas.

„LongLong“ duomenų tipas

„LongLong“ duomenų tipas galimas tik 64 bitų „Microsoft Office“ versijoje. Jei 64 bitų kompiuteryje naudojate 32 bitų „Office“ versiją, šis duomenų tipas nebus pasiekiamas. Jis palaiko skaičius nuo -9,223,372,036,854,775,808 iki 9,223,372,036,854,775,807.

1 Dim lngA kaip LongLong

„LongPtr“ duomenų tipas

„LongPtr“ buvo įdiegta į VBA, kad būtų palaikoma 64 bitų „Microsoft Office“ versija. 32 bitų sistemoje jis laikomas „Long“, o 64 bitų sistemose - „LongLong“.

1 Dim lngA kaip LongPtr

Pastaba: „LongPtr“ negalima „Excel 2007“ ar senesnėse versijose.

Dešimtainės vertės ir ilgi duomenų tipai

Ilgi kintamieji negali išsaugoti dešimtainių reikšmių. Jei dešimtainis skaičius yra ilgas, dešimtainis skaičius suapvalinamas, kad būtų pašalintas dešimtainis.

Todėl, jei atliksite toliau nurodytą procedūrą:

12345678 Antrasis LngExampleB ()“paskelbti ilgą kintamąjįDim lngA kaip ilgas“užpildykite ilgą kintamąjįlngA = 3524.12“parodyti pranešimų laukelį„MsgBox lngA“Pabaiga Sub

Dešimtainė vertė bus suapvalinta žemyn, pateikiant šį pranešimą:

Tačiau šis kodas žemiau:

12345678 Antrasis LngExampleB ()“paskelbti ilgą kintamąjįDim lngA kaip ilgas“užpildykite ilgą kintamąjįlngA = 3524.12“parodyti pranešimų laukelį„MsgBox lngA“Pabaiga Sub

Grąžintų šį pranešimų laukelį (apvalinant aukštyn):

Dešimtainis / dvigubas duomenų tipas

Jei norite išsaugoti skaičių po kablelio, turėsite deklaruoti kintamąjį, leidžiantį naudoti dešimtainius skaičius. Galite naudoti 3 duomenų tipus - vieną, dvigubą arba valiutą.

1 Dim sngPrice as Single
1 Dim dbl Kaina dviguba
1 Kaina kaip valiuta

Vieno tipo duomenys suapvalins dešimtainį tašką šiek tiek kitaip nei dvigubas ir valiutos duomenų tipas, todėl tikslumui geriau naudoti dvigubą vienkartinį. Dvivietis gali turėti iki 12 skaičių po kablelio, o valiuta ir viengubas - iki 4 skaičių po kablelio.

Skelbkite ilgą kintamąjį moduliu arba pasauliniu lygiu

Ankstesniuose pavyzdžiuose procedūros metu paskelbėme kintamąjį „Ilgas“. Kintamieji, deklaruojami naudojant procedūrą, gali būti naudojami tik tos procedūros metu.

Vietoj to, galite deklaruoti ilgus kintamuosius modulio ar pasauliniu lygiu.

Modulio lygis

Modulio lygis kintamieji deklaruojami kodo modulių viršuje su Mat pareiškimas.

Šiuos kintamuosius galima naudoti atliekant bet kokias to kodo modulio procedūras.

Pasaulinis lygis

Pasaulinis lygis kintamieji taip pat deklaruojami kodo modulių viršuje. Tačiau, užuot naudoję Mat teiginį, naudokite Viešas teiginys, nurodantis, kad ilgą kintamąjį galima naudoti visame VBA projekte.

1 Vieša lngA kaip ilga

Jei deklaruotumėte ilgą kintamąjį modulio lygiu ir bandytumėte jį naudoti kitame modulyje, įvyktų klaida.

Tačiau, jei būtumėte naudoję viešąjį raktinį žodį ilgam kintamajam deklaruoti, klaida neįvyktų ir procedūra vyktų puikiai.

Formatas ilgai saugomas kaip eilutė

Gali būti laikas, kai norite suformatuoti ilgą duomenų tipą į eilutę, pavyzdžiui, datą arba galbūt norėsite parodyti valiutos simbolį.

Norėdami tai padaryti, naudokite funkciją Formatas.

Ši procedūra:

1234567891011 Antrasis testasLongToString ()“paskelbti eilutės kintamąjįPritemdyti strDate kaip eilutę“paskelbkite ilgąjį ir nurodykite vertęDim lngDate kaip ilgaiLngDate = 44055"konvertuokite ilgį į eilutę, suformuotą kaip datastrDate = Formatas (lngDate, "dd mmmm yyyy")'peržiūrėti rezultatąDerinimas. Spausdinti strDatePabaiga Sub

grąžins rezultatą žemiau:

ir toliau nurodyta tvarka

1234567891011 Antrasis testasLongtoCurrencyString ()“paskelbti eilutės kintamąjį„Dim strMoney“ kaip eilutė“paskelbkite ilgąjį ir nurodykite vertęDim lngValue As LonglngValue = 44055“konvertuokite ilgį į eilutę su valiutos simboliustrMoney = Formatas (lngValue, "$#, ## 0")'peržiūrėti rezultatą„MsgBox strMoney“Pabaiga Sub

grąžintų tokį rezultatą:

wave wave wave wave wave