Длинный тип данных VBA (тусклая переменная)

Тип длинной переменной

VBA Длинный Тип данных используется для хранения очень длинных значений данных (от -2 147 483 648 до 2 147 483 648). Он может хранить только целые числа (без десятичных знаков).

Чтобы объявить переменную типа Long, вы используете оператор Dim (сокращение от Dimension):

1 Dim lngA как Long

Затем, чтобы присвоить значение переменной, просто используйте знак равенства:

1 lngA = 30000

Ввод этого в процедуру выглядит так:

12345678 Sub lngExample ()'объявить длинную переменнуюDim lngA как Long'заполнить длинную переменнуюlngA = 30000'показать окно сообщенияMsgBox lngAКонец подписки

Если вы запустите приведенный выше код, появится следующее окно сообщения.

Тип данных 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-битной системе он рассматривается как Long, а в 64-битных системах - как LongLong.

1 Dim lngA как LongPtr

Примечание. LongPtr недоступен в Excel 2007 и более ранних версиях.

Десятичные значения и длинные типы данных

Переменные типа Long не могут хранить десятичные значения. Если вы передадите десятичное число длинным, десятичное число будет округлено, чтобы удалить десятичное.

Таким образом, если вы выполните следующую процедуру:

12345678 Sub LngExampleB ()'объявить длинную переменнуюDim lngA как Long'заполнить длинную переменнуюlngA = 3524,12'показать окно сообщенияMsgBox lngAКонец подписки

Десятичное значение будет округлено в меньшую сторону, возвращая следующее сообщение:

Однако этот код ниже:

12345678 Sub LngExampleB ()'объявить длинную переменнуюDim lngA как Long'заполнить длинную переменнуюlngA = 3524,12'показать окно сообщенияMsgBox lngAКонец подписки

Вернет следующее окно сообщения (округление в большую сторону):

Десятичный / двойной тип данных

Если вы хотите сохранить десятичный разряд, вам нужно будет объявить переменную, которая позволяет использовать десятичные разряды. Вы можете использовать 3 типа данных: одинарный, двойной или валютный.

1 Dim sngЦена как Single
1 Dim dblPrice as Double
1 Dim curPrice as Currency

Тип данных Single округляет десятичную запятую несколько иначе, чем типы данных double и currency, поэтому для точности предпочтительно использовать двойное до одинарного. Double может иметь до 12 знаков после запятой, в то время как Currency и Single могут иметь до 4 знаков после запятой.

Объявление длинной переменной на модульном или глобальном уровне

В предыдущих примерах мы объявили переменную Long внутри процедуры. Переменные, объявленные с помощью процедуры, могут использоваться только внутри этой процедуры.

Вместо этого вы можете объявить переменные типа Long на модульном или глобальном уровне.

Уровень модуля

Уровень модуля переменные объявляются в верхней части модулей кода с Тусклый утверждение.

Эти переменные можно использовать с любой процедурой в этом модуле кода.

Глобальный уровень

Глобальный уровень переменные также объявляются в верхней части модулей кода. Однако вместо использования Тусклый заявление, используйте Общественные , чтобы указать, что длинная переменная доступна для использования во всем вашем проекте VBA.

1 Public lngA as Long

Если вы объявите длинную переменную на уровне модуля, а затем попытаетесь использовать ее в другом модуле, возникнет ошибка.

Однако, если вы использовали ключевое слово Public для объявления переменной long, ошибки не возникнет, и процедура будет работать безупречно.

Форматировать долгое время хранения в виде строки

Может быть, в какой-то момент вы захотите преобразовать длинный тип данных в строку - например, дату или вы можете захотеть отобразить символ валюты.

Для этого вы используете функцию форматирования.

Следующая процедура:

1234567891011 Sub TestLongToString ()'объявить строковую переменнуюDim strDate как строка'объявить длинный и заполнить значениеDim lngDate до тех пор, покаlngDate = 44055'преобразовать длинную строку в строку, отформатированную как датуstrDate = Format (lngDate, «дд мммм гггг»)'посмотреть результатDebug.Print strDateКонец подписки

вернет результат ниже:

и следующая процедура

1234567891011 Sub TestLongtoCurrencyString ()'объявить строковую переменнуюDim strMoney как строка'объявить длинный и заполнить значениеDim lngValue As LonglngValue = 44055'преобразовать длинную строку в строку с символом валютыstrMoney = Format (lngValue, "$ #, ## 0")'посмотреть результатMsgBox strMoneyКонец подписки

вернет этот результат:

Вы поможете развитию сайта, поделившись страницей с друзьями

wave wave wave wave wave