Язык вба поддерживает следующие типы числовых данных

Типы данных VBA

Тип Date

VBA использует тип Date для хранения дат и времени.

Можно вычитать одну дату из другой, добавлять к дате или вычитать числа для изменения ее значения. В VBA имеется несколько встроенных процедур для отдельного извлечения года, месяца, дня, часов, минут и секунд переменной типа Date.

Числа

VBA имеет шесть различных численных типов данных: Byte, Integer, Long, Single, Double, Currency.

Они используются для хранения чисел в различных форматах, в зависимости от конкретного типа.

Целые числа

VBA предоставляет три типа целых данных: Byte, Integer, Long.

Byte, Integer, Long типы требуют меньше памяти для хранения чисел, чем другие численные типы данных VBA, а математические операции и операции сравнения над числами указанных типов быстрее, чем эти же операции для численных типов данных с плавающей точкой.

VBA автоматически преобразует данные типов Byte, Integer, Long в текст, когда они выводятся на экран, используя такие процедуры, как MsgBox.

Числа с плавающей точкой

Числа с плавающей точкой могут иметь любое число цифр до или после десятичной точки (в пределах границ конкретного типа данных). Иногда их называют действительными числами. Этот тип данных используют тогда, когда требуется хранить числа, имеющие дробную часть.

VBA имеет два типа данных с плавающей точкой: Single, Double.

Следует иметь ввиду, что операции, выполняемые над числами с плавающей точкой, немного медленнее подобных операций над другими численными типами данных. Кроме того, числа, хранимые как типы данных с плавающей точкой, могут быть подвержены ошибкам округления. Если число с плавающей точкой очень большое или очень малое, VBA отображает его в экспоненциальном представлении.

Тип данных Currency

Текстовые строки

Любые текстовые данные, сохраняемые в VBA, называются строками. Для их хранения предназначен тип данных String.

Строка может содержать текстовые символы любых типов: буквы, цифры, знаки пунктуации, разделительные символы и пр.

Строки всегда заключаются в двойные кавычки.

Существует две категории строк: строки переменной длины и строки фиксированной длины. По умолчанию в VBA все строки переменной длины.

Логические значения

Булевские значения получают как результат операции сравнения. Операции сравнения имеет место при сравнении одного с другим, например, при сравнении двух чисел для определения, которое из них больше.

Тип данных Variant

Это особый тип данных, который может сохранять любые типы, за исключением типа Object. VBA использует этот тип данных для всех переменных, если только они не объявлены явно.

Данные типа Variant принимают характеристики определенного типа, который они сохраняют в данный момент. Например, если данные типа Variant содержат строковые данные, Variant принимает характеристики типа String. VBA использует для данных типа Variant наиболее компактное представление, возможное для конкретных значений, находящихся в данных.

Несмотря на то, что типы Variant удобны и избавляют от некоторой части работы при написании кода, они требуют большего объема памяти, чем любой другой тип данных, за исключением больших строк. Кроме того, математические операции и операции сравнения над данными типа Variant выполняются медленнее, чем подобные операции над данными любого другого типа. Следует избегать использования переменных Variant.

Подведем итог вышесказанному:

Тип данных

Описание и диапазон значения

Хранение положительных чисел от 0 до 255

Хранение логических значений: True, False

Хранение даты и времени.
Даты от 1.01.100 до 31.12.9999
Время от 00:00:00 до 23:59:59

Хранение текста длиной до 2 млрд. символов

Хранение любого типа данных

Источник

Сводка типов данных (Visual Basic) Data Type Summary (Visual Basic)

В следующей таблице показаны типы данных Visual Basic, Поддерживаемые типы среды CLR, их номинальное выделение памяти и диапазоны значений. The following table shows the Visual Basic data types, their supporting common language runtime types, their nominal storage allocation, and their value ranges.

Тип Visual Basic Visual Basic type Структура типа среды CLR Common language runtime type structure Номинальное выделение памяти Nominal storage allocation Диапазон значений Value range
Boolean Boolean Boolean Зависит от реализации платформы Depends on implementing platform True или False True or False
Byte Byte Byte 1 байт 1 byte от 0 до 255 (без знака) 0 through 255 (unsigned)
Char (одиночный символ) Char (single character) Char 2 байта 2 bytes от 0 до 65535 (без знака) 0 through 65535 (unsigned)
Дата Date DateTime 8 байт 8 bytes 0:00:00 (полночь) 1 января 0001 г. по 11:59:59 – 31 декабря 9999 0:00:00 (midnight) on January 1, 0001 through 11:59:59 PM on December 31, 9999
Decimal Decimal Decimal 16 байт 16 bytes от 0 до +/-79,228,162,514,264,337,593,543,950,335 (+/-7.9. E + 28) † без десятичной запятой; от 0 до +/-7.9228162514264337593543950335 с 28 разрядами справа от десятичного разделителя; 0 through +/-79,228,162,514,264,337,593,543,950,335 (+/-7.9. E+28) † with no decimal point; 0 through +/-7.9228162514264337593543950335 with 28 places to the right of the decimal;

1.401298 e-45 до 4028235E E + 38 † для положительных значений 1.401298E-45 through 3.4028235E+38 † for positive values

Строка (переменная длина) String (variable-length) Stringсм String (class) Зависит от реализации платформы Depends on implementing platform от 0 до приблизительно 2 000 000 000 символов Юникода 0 to approximately 2 billion Unicode characters
UInteger UInteger UInt32 4 байта 4 bytes от 0 до 4 294 967 295 (без знака) 0 through 4,294,967,295 (unsigned)
ULong ULong UInt64 8 байт 8 bytes от 0 до 18446744073709551615 (1.8. E + 19 † ) (без знака) 0 through 18,446,744,073,709,551,615 (1.8. E+19 † ) (unsigned)
Определяемый пользователем (структура) User-Defined (structure) (наследует от ValueType ) (inherits from ValueType) Зависит от реализации платформы Depends on implementing platform Каждый элемент структуры имеет диапазон, определяемый типом данных и не зависящий от диапазонов других элементов. Each member of the structure has a range determined by its data type and independent of the ranges of the other members
UShort UShort UInt16 2 байта 2 bytes от 0 до 65 535 (без знака) 0 through 65,535 (unsigned)

† В экспоненциальном представлении«E» означает степень числа 10. † In scientific notation, «E» refers to a power of 10. Итак, 3.56 E + 2 означает 3,56 x 10 или 356, а 3.56 e-2 — 3,56/10 2 или 0,0356. So 3.56E+2 signifies 3.56 x 10 2 or 356, and 3.56E-2 signifies 3.56 / 10 2 or 0.0356.

Для строк, содержащих текст, используйте StrConv функцию для преобразования одного текстового формата в другой. For strings containing text, use the StrConv function to convert from one text format to another.

Помимо указания типа данных в операторе объявления, можно принудительно задать тип данных некоторых элементов программирования с помощью символа типа. In addition to specifying a data type in a declaration statement, you can force the data type of some programming elements by using a type character. См. раздел символы типа. See Type Characters.

Затраты памяти Memory Consumption

При объявлении простейшего типа данных нельзя считать, что его потребление памяти совпадает с номинальным выделением хранилища. When you declare an elementary data type, it is not safe to assume that its memory consumption is the same as its nominal storage allocation. Это обусловлено следующими соображениями. This is due to the following considerations:

Назначение хранилища. Storage Assignment. Среда CLR может назначать хранилище на основе текущих характеристик платформы, в которой выполняются приложения. The common language runtime can assign storage based on the current characteristics of the platform on which your application is executing. Если память почти заполнена, она может упаковать объявленные элементы как можно ближе друг к другу. If memory is nearly full, it might pack your declared elements as closely together as possible. В других случаях адреса памяти могут быть согласованы с естественными аппаратными границами для оптимизации производительности. In other cases it might align their memory addresses to natural hardware boundaries to optimize performance.

Ширина платформы. Platform Width. Назначение хранилища на 64-разрядной платформе отличается от назначения на 32-разрядной платформе. Storage assignment on a 64-bit platform is different from assignment on a 32-bit platform.

Составные типы данных Composite Data Types

Те же рекомендации применимы к каждому элементу составного типа данных, такому как структура или массив. The same considerations apply to each member of a composite data type, such as a structure or an array. Вы не можете полагаться на простое сложение номинальных выделений памяти для членов типа. You cannot rely on simply adding together the nominal storage allocations of the type’s members. Кроме того, существуют и другие рекомендации, например следующие: Furthermore, there are other considerations, such as the following:

За. Overhead. Некоторые составные типы предъявляют дополнительные требования к памяти. Some composite types have additional memory requirements. Например, массив использует дополнительную память для самого массива, а также для каждого измерения. For example, an array uses extra memory for the array itself and also for each dimension. На 32-разрядной платформе этот объем накладных расходов в настоящее время составляет 12 байт плюс 8 байт для каждого измерения. On a 32-bit platform, this overhead is currently 12 bytes plus 8 bytes for each dimension. На 64-разрядной платформе это требование удваивается. On a 64-bit platform this requirement is doubled.

Структура хранилища. Storage Layout. Нельзя безопасно предположить, что порядок хранения в памяти совпадает с порядком объявления. You cannot safely assume that the order of storage in memory is the same as your order of declaration. Вы даже не можете делать предположения относительно выравнивания байтов, например 2-байтовой или 4-байтовой границы. You cannot even make assumptions about byte alignment, such as a 2-byte or 4-byte boundary. При определении класса или структуры и необходимости управления структурой хранения его элементов можно применить StructLayoutAttribute атрибут к классу или структуре. If you are defining a class or structure and you need to control the storage layout of its members, you can apply the StructLayoutAttribute attribute to the class or structure.

Издержки объекта Object Overhead

При Object ссылке на любой простой или составной тип данных в дополнение к данным, содержащимся в типе данных, используется 4 байта. An Object referring to any elementary or composite data type uses 4 bytes in addition to the data contained in the data type.

Источник

Числовые типы данных (Visual Basic) Numeric Data Types (Visual Basic)

Visual Basic предоставляет несколько числовых типов данных для обработки чисел в различных представлениях. Visual Basic supplies several numeric data types for handling numbers in various representations. Целочисленные типы представляют только целые числа (положительные, отрицательные и нулевые), а Нецелочисленные типы — числа с целой и дробной частями. Integral types represent only whole numbers (positive, negative, and zero), and nonintegral types represent numbers with both integer and fractional parts.

Для таблицы, показывающей параллельное сравнение типов данных Visual Basic, см. в разделе типы данных. For a table showing a side-by-side comparison of the Visual Basic data types, see Data Types.

Целочисленные типы Integral Numeric Types

Целочисленные типы данных — это те, которые представляют только числа без дробных частей. Integral data types are those that represent only numbers without fractional parts.

Целочисленные типы данных со знаком имеют тип данных SByte (8-разрядный), короткий тип данных (16-разрядный), целочисленный тип данных (32 бит) и тип данных Long (64-бит). The signed integral data types are SByte Data Type (8-bit), Short Data Type (16-bit), Integer Data Type (32-bit), and Long Data Type (64-bit). Если переменная всегда хранит целые числа, а не дробные числа, объявите ее как один из этих типов. If a variable always stores integers rather than fractional numbers, declare it as one of these types.

Целочисленные типы без знака имеют тип данных Byte (8-разрядный), тип данных UShort (16-разрядный), тип данных UInteger (32 бит) и тип данных ULong (64-бит). The unsigned integral types are Byte Data Type (8-bit), UShort Data Type (16-bit), UInteger Data Type (32-bit), and ULong Data Type (64-bit). Если переменная содержит двоичные данные или данные неизвестной природы, объявите ее как один из этих типов. If a variable contains binary data, or data of unknown nature, declare it as one of these types.

Производительность Performance

Арифметические операции выполняются быстрее с целочисленными типами, чем с другими типами данных. Arithmetic operations are faster with integral types than with other data types. Они работают быстрее с Integer типами и UInteger в Visual Basic. They are fastest with the Integer and UInteger types in Visual Basic.

Большие целые числа Large Integers

Небольшие целые числа Small Integers

Целые числа без знака Unsigned Integers

Нецелочисленные числовые типы Nonintegral Numeric Types

Нецелочисленные типы данных — это значения, представляющие числа с целой и дробной частями. Nonintegral data types are those that represent numbers with both integer and fractional parts.

Нецелочисленные числовые типы данных: Decimal (128-разрядная Фиксированная точка), один тип данных (32-разрядная с плавающей запятой) и тип данных double (64-разрядный с плавающей запятой). The nonintegral numeric data types are Decimal (128-bit fixed point), Single Data Type (32-bit floating point), and Double Data Type (64-bit floating point). Все типы со знаком. They are all signed types. Если переменная может содержать дробную часть, объявите ее как один из этих типов. If a variable can contain a fraction, declare it as one of these types.

Decimal не является типом данных с плавающей запятой. Decimal is not a floating-point data type. Decimal числа имеют двоичное целочисленное значение и коэффициент масштабирования целого числа, который указывает, какая часть значения является десятичной дробью. Decimal numbers have a binary integer value and an integer scaling factor that specifies what portion of the value is a decimal fraction.

Вы можете использовать Decimal переменные для денежных значений. You can use Decimal variables for money values. Преимущество — точность значений. The advantage is the precision of the values. Double Тип данных является более быстрым и требует меньше памяти, но он подвергается ошибкам округления. The Double data type is faster and requires less memory, but it is subject to rounding errors. Decimal Тип данных сохраняет полную точность до 28 десятичных разрядов. The Decimal data type retains complete accuracy to 28 decimal places.

Производительность Performance

Небольшие величины Small Magnitudes

Небольшие дробные числа Small Fractional Numbers

Источник

Поделиться с друзьями
admin
Оцените автора
( Пока оценок нет )
Как переводится?
Adblock
detector