VBA дълъг тип данни (Dim Variable)

Дълъг променлив тип

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

ще върне този резултат:

wave wave wave wave wave