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ą: