Дълъг променлив тип
VBA Дълго тип данни се използва за съхраняване на много дълги стойности на данни (-2,147,483,648 до 2,147,483,648). Може да съхранява само цели числа (без десетични знаци).
За да декларирате променлива Long, използвате Dim Statement (съкращение от Dimension):
1 | Dim lngA като Long |
След това, за да присвоите стойност на променлива, просто използвайте знака за равенство:
1 | lngA = 30000 |
Поставянето на това в процедура изглежда така:
12345678 | Sub lngExample ()'декларирайте дългата променливаDim lngA като Long'попълнете дългата променливаlngA = 30000'покажете полето за съобщенияMsgBox lngAEnd Sub |
Ако изпълните горния код, ще се покаже следното поле със съобщение.
Тип данни LongLong
Типът данни LongLong е наличен само в 64 -битовата версия на Microsoft Office. Ако използвате 32 -битова версия на Office на 64 -битова машина, този тип данни няма да е наличен. Той поддържа числа в диапазона от -9,223,372,036,854,775,808 до 9,223,372,036,854,775,807.
1 | Dim lngA като LongLong |
Тип данни LongPtr
LongPtr беше въведен във VBA, за да поддържа 64 -битовата версия на Microsoft Office. На 32 -битова система тя се третира като дълга, а на 64 -битова система - като LongLong.
1 | Dim lngA като LongPtr |
Забележка: LongPtr не е наличен в Excel 2007 или по -ранна версия.
Десетични стойности и дълги типове данни
Дългите променливи не могат да съхраняват десетични стойности. Ако прекарате дълъг десетичен номер, десетичното число ще бъде закръглено, за да премахне десетичното число.
Следователно, ако трябва да изпълните процедурата по -долу:
12345678 | Sub LngExampleB ()'декларирайте дългата променливаDim lngA като Long'попълнете дългата променливаlngA = 3524,12'покажете полето за съобщенияMsgBox lngAEnd Sub |
Десетичната стойност ще бъде закръглена надолу, връщайки следното съобщение:
Този код по -долу обаче:
12345678 | Sub LngExampleB ()'декларирайте дългата променливаDim lngA като Long'попълнете дългата променливаlngA = 3524,12'покажете полето за съобщенияMsgBox lngAEnd Sub |
Ще върне следното поле за съобщение (закръгляване нагоре):
Десетичен / двоен тип данни
Ако искате да съхранявате десетичен знак, ще трябва да декларирате променлива, която позволява десетични знаци. Има 3 типа данни, които можете да използвате - единични, двойни или валутни.
1 | Dim sngЦена като единична |
1 | Dim dblЦена като Double |
1 | Dim curЦена като валута |
Единичният тип данни ще закръгля десетичната запетая малко по -различно от двойния и валутния тип данни, така че е за предпочитане да се използва двойно до единично за точност. Double може да има до 12 десетични знака, докато Currency и Single могат да имат до 4 десетични знака.
Декларирайте дълга променлива на модулно или глобално ниво
В предишните примери декларирахме променливата Long в рамките на процедура. Променливите, декларирани с процедура, могат да се използват само в рамките на тази процедура.
Вместо това можете да декларирате дълги променливи на модулно или глобално ниво.
Модулно ниво
Ниво на модул променливите се декларират в горната част на кодовите модули с Дим изявление.
Тези променливи могат да се използват с всяка процедура в този кодов модул.
Глобално ниво
Глобално ниво променливите също се декларират в горната част на кодовите модули. Въпреки това, вместо да използвате Дим изявление, използвайте Обществен изявление, което показва, че дългата променлива е достъпна за използване във вашия VBA проект.
1 | Публична lngA толкова дълга |
Ако трябва да декларирате дългата променлива на ниво модул и след това да се опитате да я използвате в друг модул, ще възникне грешка.
Ако обаче сте използвали ключовата дума Public за деклариране на дългата променлива, грешката няма да възникне и процедурата ще работи перфектно.
Форматирайте дълго съхраняван като низ
Може да има момент, в който искате да форматирате дълъг тип данни в низ - например дата или може да искате да покажете символ на валута.
За да постигнете това, използвайте функцията Форматиране.
Следващата процедура:
1234567891011 | Sub TestLongToString ()'декларирайте низовата променливаЗатъмнете strDate като низ'декларирайте long и попълнете стойносттаDim lngDate толкова дългоlngDate = 44055'конвертирате long в низ, форматиран като датаstrDate = Формат (lngDate, "dd mmmm yyyy")'вижте резултатаОтстраняване на грешки. Отпечатайте strDateEnd Sub |
ще върне резултата по -долу:
и следната процедура
1234567891011 | Sub TestLongtoCurrencyString ()'декларирайте низовата променливаDim strМани като низ'декларирайте long и попълнете стойносттаDim lngValue As LonglngValue = 44055'конвертирайте дългия в низ с символ на валутаstrMoney = Формат (lngValue, "$#, ## 0")'вижте резултатаMsgBox strMoneyEnd Sub |
ще върне този резултат: