Vba excel as double это

Справочная таблица по встроенным типам данных VBA Excel. Функция TypeName, возвращающая тип данных переменной. Оператор Option Explicit в начале модуля.

Встроенные типы данных

Встроенные типы данных VBA Excel:

Тип данных Байты* Диапазон значений
Byte 1 Целые числа:
от 0 до 255
Boolean 2 True (Истина) или False (Ложь)
Integer 2 Целые числа:
от -32768 до 32767
Long 4 Целые числа:
от -2147483648 до 2147483647
Single 4 Отрицательные числа:
от -3,402823Е+38 до -1,401298Е-45
Положительные числа:
от 1,401298Е-45 до 3,402823Е+38
Double 8 Отрицательные числа:
от -1,79769313486232Е+308
до -4,94065645841247Е-324
Положительные числа:
от 4,94065645841247Е-324
до 1,79769313486232Е+308
Currency 8 от -922337203685477,5808
до 922337203685477,5807
Date 8 с 1 января 100 года
по 31 декабря 9999 года
Object 4 Ссылка на объект
String
(переменной длины)
10 + длина строки от 0 до ≈2 млрд символов
String
(фиксированной длины)
длина строки от 1 до ≈65400 символов
Variant
(числа)
16 В пределах диапазона типа
данных Double
Variant
(символы)
22 + длина строки от 0 до ≈2 млрд символов

Дополнительно для VBA7:

Тип данных Байты* Диапазон значений
LongLong 8 Целые числа:
от –9 223 372 036 854 775 808
до 9 223 372 036 854 775 807
Доступен только в 64-разрядных системах.
LongPtr 4 или 8 В 32-разрядных системах соответствует типу Long:
от -2147483648 до 2147483647,
в 64-разрядных — типу LongLong:
от –9 223 372 036 854 775 808
до 9 223 372 036 854 775 807

*Резервируется память в байтах на каждую переменную соответствующего типа.

Тип данных Variant может принимать специальные значения: Empty, Error, Nothing и Null.

Кроме встроенных типов данных VBA Excel позволяет использовать пользовательские типы, создаваемые с помощью оператора Type. Диапазон значений пользовательского типа данных определяется встроенными типами, из которых он состоит.

Переменные с типами данных Byte, Boolean, Integer, Long, Single и Double можно объявлять с помощью суффиксов.

Функция TypeName

TypeName – это функция, возвращающая значение типа String с информацией о переменной.

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

Значение Описание
Collection, Dictionary, Range, Worksheet и т.д. Тип известного объекта, ссылка на который содержится в объектной переменной
Error Переменная содержит значение ошибки
Empty Неинициализированное значение
Null Отсутствие допустимых данных
Unknown Объект, тип которого неизвестен
Nothing Объектная переменная, которая не ссылается на объект

Если переменная объявлена с числовым типом данных или String, функция TypeName возвратит наименование этого типа данных. Если переменная объявлена с типом данных Variant или Object, возвращаемое значение будет зависеть от содержимого переменной.

Пример:

Sub Primer()

Dim a As Single, b As Date, c As Variant

    MsgBox «a As Single:  « & TypeName(a)  ‘Single

    MsgBox «b As Date:  « & TypeName(b)  ‘Date

    MsgBox «c As Variant:  « & TypeName(c)  ‘Empty (значение не инициализировано)

c = 1.236

    MsgBox «c = 1.236:  « & TypeName(c)  ‘Double

Set c = Cells(1, 1)

    MsgBox «Set c = Cells(1, 1):  « & TypeName(c)  ‘Range (тип объекта)

Set c = Worksheets(1)

    MsgBox «Set c = Worksheets(1):  « & TypeName(c)  ‘Worksheet (тип объекта)

End Sub

Оператор Option Explicit

VBA Excel допускает использование в коде как объявленных, так и необъявленных переменных. Необъявленным переменным присваивается тип данных Variant и они могут принимать все допустимые значения, свойственные этому типу.

Если при написании кода допустить ошибку в имени ранее использовавшейся переменной, компилятор зарегистрирует ее как новую. Это вызовет ошибки в работе программы, причину которых (ошибку в имени переменной) трудно обнаружить при отладке.

Чтобы избежать ошибок при работе с переменными используется оператор Option Explicit. Он указывает на то, что все переменные в модуле должны быть объявлены с помощью ключевого слова Dim или ReDim. В этом случае, если компилятор обнаружит строку с необъявленной переменной, то сгенерирует ошибку и выделит эту переменную.

Размещается оператор Option Explicit в самом начале модуля перед всеми остальными операторами. Чтобы каждый раз не вставлять его вручную и, тем более, не забыть о нем, можно настроить редактор VBA Excel, чтобы он автоматически добавлял Option Explicit при создании нового модуля.

Настройка автоматического добавления Option Explicit

1. Откройте окно Options через вкладку меню Tools:

Путь к окну Options

2. Отметьте галочкой опцию Require Variable Declaration на вкладке Editor:

Окно Options

3. Теперь новый модуль открывается со строкой Option Explicit:

Строка Option Explicit вставлена


In this Article

  • Double Variable Type
  • Single Data Type
  • Int or Long Data Types
  • Declare Double Variable at Module or Global Level
    • Module Level
    • Global Level
  • Format Double Stored as String

Double Variable Type

The VBA Double data type is used to store numbers that require decimal places.  It can store from -1.79769313486231E308 to -4.94065645841247E-324 for negative values, and 4.94065645841247E-324 to 1.79769313486232E308 for positive values.

To declare an Double variable, you use the Dim Statement (short for Dimension):

Dim dblA as Double

Then, to assign a value to a variable, simply use the equal sign:

dlbA = 3658.25

Putting this in a procedure looks like this:

Sub dblExample()
'declare the double variable
   Dim dblA as Double 
'populate the double variable
   dblA = 3658.25
'show the message box
   MsgBox dblA 
End Sub

If you run the code above, the following message box will be shown.

vba-double-declare

Single Data Type

The Single data type is just a shorter version of the Double data type.  Due to this fact, it can effect the rounding when used in a procedure as the single data type will round to 4 decimal places, while the Double data Type will round to 12 decimal places.  If you do not need the Double data type, you can use the Single data type

vba double single

Int or Long Data Types

If you do not need a decimal place, you can use either the Int data type or the Long data type.

Dim intA as Integer
Dim lngB as Long

Declare Double Variable at Module or Global Level

In the previous examples, we’ve declared the Double variable within a procedure. Variables declared with a procedure can only be used within that procedure.

vba double declare procedure

Instead, you can declare Double variables at the module or global level.

Module Level

Module level variables are declared at the top of code modules with the Dim statement.

vba double declare module

These variables can be used with any procedure in that code module.

Global Level

Global level variables are also declare at the top of code modules. However, instead of using the Dim statement, use the Public statement to indicate that the Double variable is available to be used throughout your VBA Project.

Public DblA as Double

vba double declare public

If you were to declare the double variable at a module level and then try to use it in a different module, an error would occur.

vba double declare not declared

However, if you had used the Public keyword to declare the double variable, the error would not occur and the procedure would run perfectly.

VBA Coding Made Easy

Stop searching for VBA code online. Learn more about AutoMacro — A VBA Code Builder that allows beginners to code procedures from scratch with minimal coding knowledge and with many time-saving features for all users!

automacro

Learn More

Format Double Stored as String

There may be a time where you wish to format a double data type to a string – for example you might want to display a currency symbol and round the number to 2 decimal places.

To achieve this, you use the Format function.

The  following procedure

Sub TestDoubleToCurrencyString()
'declare the string variable
Dim strMoney As String
'declare the double and populate the value
Dim dblValue As Double
dblValue  = 44055.256
'convert the double to a string with a currency symbol with 2 decimal places
strMoney = Format(dblValue , "$#,##0.00")
'view the result
MsgBox strMoney
End Sub

would return this result:

vba double to string

Similarly, you may want to display a number as a formatted phone number.

This procedure:

Sub TestDoubleToPhone()
'declare the string variable
Dim strPhone As String
'declare the double and populate the value
Dim dblValue As Double
dblValue = 555968541
'convert the double to a string with a currency symbol
strPhone = Format(dblValue, "(000)-000 0000")
'view the result
MsgBox strPhone
End Sub

would return this result:

vba double string phone

Содержание

  1. Тип данных Double (Visual Basic)
  2. Remarks
  3. Советы по программированию
  4. VBA Двухместный — Объявление переменных с использованием двойного типа данных в Excel VBA
  5. Excel VBA двойной тип данных
  6. Как использовать двойной тип данных VBA в Excel?
  7. VBA Double — Пример # 1
  8. VBA Double — Пример № 2
  9. Плюсы и минусы VBA Double
  10. То, что нужно запомнить
  11. Рекомендуемые статьи
  12. VBA Excel. Типы данных
  13. Встроенные типы данных
  14. Функция TypeName

Тип данных Double (Visual Basic)

Содержит числа с плавающей запятой с двойной точностью со знаком IEEE 64-разрядной (8-байтовой) с плавающей запятой, которые варьируются от -1,79769313486231570E+308 до -4.94065645841246544E-324 для отрицательных значений и от 4,94065645841246544E-324 до 1,79769313486231570E+308 для положительных значений. Числа двойной точности хранят приближение реального числа.

Тип Double данных предоставляет наибольшее и наименьшее возможные величины для числа.

Значение по умолчанию для типа Double — 0.

Советы по программированию

Точность. При работе с числами с плавающей запятой помните, что они не всегда имеют точное представление в памяти. Это может привести к непредвиденным результатам определенных операций, таких как сравнение значений Mod и оператор. Дополнительные сведения см. в разделе «Устранение неполадок типов данных».

Конечные нули. Типы данных с плавающей запятой не имеют внутреннего представления конечных нулевых символов. Например, они не различают 4.2000 и 4.2. Следовательно, конечные нулевые символы не отображаются при отображении или печати значений с плавающей запятой.

Символы типов. При добавлении к литералу символа типа литерала R производится принудительное приведение литерала к типу данных Double . Например, если за целочисленным значением R следует, значение изменяется на Double .

При добавлении символа идентификатора типа # к любому идентификатору производится принудительное приведение этого идентификатора к типу Double . В следующем примере переменная num вводится в виде: Double

Источник

VBA Двухместный — Объявление переменных с использованием двойного типа данных в Excel VBA

Excel VBA двойной тип данных

В VBA у нас есть различные типы типов данных, которые используются в соответствии с потребностями. Например, тип данных Integer используется для чисел, тип данных String используется для алфавитов и текста, а тип данных Long используется, когда нам нужно использовать числа или текст без каких-либо ограничений. Точно так же у нас есть тип данных Double, который используется для десятичных чисел. Хотя мы можем использовать Single для десятичных чисел, но при этом будут сохранены только значения до 2 точек после запятой. Если мы хотим использовать десятичные значения без каких-либо ограничений, то для этого у нас есть тип данных Double.

Если мы используем Integer вместо типа данных Double для десятичных значений, тогда он преобразует десятичное значение в ближайшие целые числа. Кроме того, есть некоторые ограничения на использование типа данных Double. Double может принимать отрицательные значения от -1, 79769313486231E308 до -4, 94065645841247E324, а для положительных значений — от 4, 94065645841247E-324 до 1, 77969693486232E308. Помимо этого, значение не может быть принято.

Как использовать двойной тип данных VBA в Excel?

Ниже приведены различные примеры использования двойного типа данных в Excel VBA.

Вы можете скачать этот шаблон VBA Double Excel здесь — Шаблон VBA Double Excel

VBA Double — Пример # 1

В этом примере мы увидим, как разные типы данных, такие как Integer и Single, дают выходные данные для любого десятичного значения, а с другой стороны, как тип данных Double дает выходные данные с одним и тем же десятичным значением. Для этого выполните следующие шаги:

Шаг 1. Откройте модуль на вкладке меню «Вставка».

Шаг 2: Напишите подпроцедуру для VBA Double. Мы можем выбрать любое другое имя для определения имени VBA Double согласно нашему выбору.

Код:

Шаг 3: Теперь определите переменную, скажем, это будет целое число A, как показано ниже.

Код:

Шаг 4: Назначьте десятичное значение для определенной переменной. Предположим, что десятичное значение равно 1.23456789, как показано ниже.

Код:

Шаг 5: Теперь нам нужна платформа, где мы можем увидеть результат. Здесь мы можем использовать функцию Msgbox или Debug.Print. Мы будем использовать Msgbox, который является наиболее традиционным способом.

Код:

Шаг 6: Запустите его, нажав на кнопку Play или нажав клавишу F5.

Мы увидим окно вывода сообщения со значением «1». Это означает, что тип данных Integer преобразовал десятичное значение в ближайшее целое число как 1.

Шаг 7: Теперь давайте изменим тип данных с Integer на Single и посмотрим, какой тип данных нам вернет.

Код:

Шаг 8: Снова запустите код, нажав кнопку Play или нажав клавишу F5.

Мы увидим, что тип данных Single вернул десятичное значение, равное 1 . 234568, тогда как мы ввели входное значение как 1, 23456789 .

Это означает, что тип данных Single преобразует введенное десятичное значение в ближайшее возможное десятичное значение путем преобразования последней цифры в ближайшее значение, которое должно быть меньше 5.

Шаг 9: Теперь мы будем использовать тип данных Double вместо Single и посмотрим, какой вывод мы получим.

Код:

Шаг 10: Снова запустите код, нажав кнопку Play или нажав клавишу F5.

Мы увидим, что окно сообщения имеет точно такое же значение, которое мы указали, что означает, что Double не преобразовал входное значение, если оно падает ниже своего предела.

VBA Double — Пример № 2

В этом примере мы будем использовать ссылки на ячейки. И мы начнем работать так же, как мы видели в примере-1. Для этого у нас есть некоторые данные в столбце A в виде десятичных разрядов.

Выполните следующие шаги:

Шаг 1: Запишите подпроцедуру VBA Double, как показано ниже.

Код:

Шаг 2: Сначала мы начнем с Integer. Поэтому определите переменную как Integer, как показано ниже. Это будет наша входная переменная.

Код:

Шаг 3: После этого мы снова определим переменную как целое число. Это переменная, в которой мы будем хранить выходные данные.

Код:

Шаг 4: Откройте цикл For-Next, как показано ниже. Здесь мы напишем условие для получения данных из столбца в другой столбец.

Код:

Шаг 5: Выберите диапазон ячеек в переменной А. Здесь наши данные от ячейки А1 до А10.

Код:

Шаг 6: Теперь выберите значения ячеек, которые мы хотим разместить. Здесь значения ячеек находятся в первом столбце.

Код:

Шаг 7: Теперь мы поместим выбранные значения в столбец 2, который является B в определенной переменной Deci .

Код:

Шаг 8: Запустите код, нажав на кнопку Play или нажав клавишу F5.

Поскольку мы выбрали тип данных Integer для выходной переменной Deci, он преобразовал десятичные числа в целые числа в столбце B.

Шаг 9: Давайте изменим тип данных Deci, который является выходной переменной, с Integer на Single, как показано ниже.

Код:

Шаг 10: Запустите код, нажав на кнопку Play или нажав клавишу F5. Мы увидим, что десятичные числа из столбца A были преобразованы в наилучшие возможные десятичные числа.

Шаг 11: Давайте изменим тип данных выходной переменной с Single на Double . И посмотрим, что мы получим в столбце Б.

Код:

Шаг 12: Снова запустите код, нажав кнопку Play или нажав клавишу F5. Вот как работает VBA Double .

Плюсы и минусы VBA Double

  • VBA Double преобразует одно и то же число в десятичные числа в определенном диапазоне.
  • Это довольно просто в использовании.
  • Мы можем использовать тип данных Double вместо Integer или Single аналогичным образом.
  • Он не учитывает десятичное число, превышающее предел, который мы видели в приведенном выше разделе введения.

То, что нужно запомнить

  • Предел использования VBA Double для отрицательных значений составляет от -1, 79769313486231E308 до -4, 94065645841247E324, а для положительных значений — от 94065645841247E-324 до 1, 779769313486232E308.
  • VBA Double может содержать до 14-значных значений, если он находится ниже указанного предела.
  • VBA Double использует 8 байт системной памяти для каждого используемого типа.

Рекомендуемые статьи

Это руководство по Excel VBA Double. Здесь мы обсудим, как использовать двойные типы данных в Excel VBA вместе с практическими примерами и загружаемым шаблоном Excel. Вы также можете просмотреть наши другие предлагаемые статьи —

  1. VBA Randomize (Примеры с шаблоном Excel)
  2. Как переименовать лист в VBA?
  3. Как использовать VBA ReDim Statement?
  4. VBA переменная декларация | Шаблон Excel
  5. VBA Environ

Источник

VBA Excel. Типы данных

Справочная таблица по встроенным типам данных VBA Excel. Функция TypeName, возвращающая тип данных переменной. Оператор Option Explicit в начале модуля.

Встроенные типы данных

Встроенные типы данных VBA Excel:

Тип данных Байты* Диапазон значений
Byte 1 Целые числа:
от 0 до 255
Boolean 2 True (Истина) или False (Ложь)
Integer 2 Целые числа:
от -32768 до 32767
Long 4 Целые числа:
от -2147483648 до 2147483647
Single 4 Отрицательные числа:
от -3,402823Е+38 до -1,401298Е-45
Положительные числа:
от 1,401298Е-45 до 3,402823Е+38
Double 8 Отрицательные числа:
от -1,79769313486232Е+308
до -4,94065645841247Е-324
Положительные числа:
от 4,94065645841247Е-324
до 1,79769313486232Е+308
Currency 8 от -922337203685477,5808
до 922337203685477,5807
Date 8 с 1 января 100 года
по 31 декабря 9999 года
Object 4 Ссылка на объект
String
(переменной длины)
10 + длина строки от 0 до ≈2 млрд символов
String
(фиксированной длины)
длина строки от 1 до ≈65400 символов
Variant
(числа)
16 В пределах диапазона типа
данных Double
Variant
(символы)
22 + длина строки от 0 до ≈2 млрд символов

Дополнительно для VBA7:

Тип данных Байты* Диапазон значений
LongLong 8 Целые числа:
от –9 223 372 036 854 775 808
до 9 223 372 036 854 775 807
Доступен только в 64-разрядных системах.
LongPtr 4 или 8 В 32-разрядных системах соответствует типу Long:
от -2147483648 до 2147483647,
в 64-разрядных — типу LongLong:
от –9 223 372 036 854 775 808
до 9 223 372 036 854 775 807

*Резервируется память в байтах на каждую переменную соответствующего типа.

Тип данных Variant может принимать специальные значения: Empty, Error, Nothing и Null.

Кроме встроенных типов данных VBA Excel позволяет использовать пользовательские типы, создаваемые с помощью оператора Type. Диапазон значений пользовательского типа данных определяется встроенными типами, из которых он состоит.

Переменные с типами данных Byte, Boolean, Integer, Long, Single и Double можно объявлять с помощью суффиксов.

Функция TypeName

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

Значение Описание
Collection, Dictionary, Range, Worksheet и т.д. Тип известного объекта, ссылка на который содержится в объектной переменной
Error Переменная содержит значение ошибки
Empty Неинициализированное значение
Null Отсутствие допустимых данных
Unknown Объект, тип которого неизвестен
Nothing Объектная переменная, которая не ссылается на объект

Если переменная объявлена с числовым типом данных или String, функция TypeName возвратит наименование этого типа данных. Если переменная объявлена с типом данных Variant или Object, возвращаемое значение будет зависеть от содержимого переменной.

Источник

Excel VBA Double Data Type

VBA Double is a data type we assign to declare variables, an improved or longer version of the “Single” data type variable. One can usually use it to store longer decimal places.

VBA IntegerIn VBA, an integer is a data type that may be assigned to any variable and used to hold integer values. In VBA, the bracket for the maximum number of integer variables that can be kept is similar to that in other languages. Using the DIM statement, any variable can be defined as an integer variable.read more

data type always converts decimal values to the nearest integer value. The single data type can show up to two digits of decimal places. On the other hand “Double” data type can store values from -1.79769313486231E308 to -4.94065645841247E324 for negative values and for positive numbers it can store values from 4.94065645841247E-324 to 1.79769313486232E308.

More importantly, it consumes 8 bytes of memory.

Table of contents
  • Excel VBA Double Data Type
    • Examples to use VBA Double Data Type
      • Example #1
      • Example #2
    • Things to Remember
    • Recommended Articles

vba-double

You are free to use this image on your website, templates, etc, Please provide us with an attribution linkArticle Link to be Hyperlinked
For eg:
Source: VBA Double (wallstreetmojo.com)

Examples to use VBA Double Data Type

You can download this VBA Double Excel Template here – VBA Double Excel Template

Example #1

Before we see the example of the Double data type, let us look at the example codes of “Integer” and “Single” data types in VBA. First, look at the VBA codeVBA code refers to a set of instructions written by the user in the Visual Basic Applications programming language on a Visual Basic Editor (VBE) to perform a specific task.read more below.

Code:

Sub Integer_Ex()

  Dim k As Integer

  k = 2.569999947164

  MsgBox k

End Sub

VBA Double Example 1

We have declared the variable “k” as Integer. For this variable, we have assigned the value as 2.569999947164.

Let us run this code manually or use excel shortcut keyAn Excel shortcut is a technique of performing a manual task in a quicker way.read more F5 to see the final value in the message box in VBAVBA MsgBox function is an output function which displays the generalized message provided by the developer. This statement has no arguments and the personalized messages in this function are written under the double quotes while for the values the variable reference is provided.read more.

VBA Double Example 1-1

The result is showing as 3 instead of the supplied number of 2.569999947164. The reason is VBA has converted the number to the nearest integer value, i.e., 3.

When the decimal value is more than 0.5, it will convert to the next integer value, and when the decimal value is less than 0.51, it will convert to the below Integer value.

Now, we will change the data type from Integer to Single.

Code:

Sub Integer_Ex()

  Dim k As Single

  k = 2.569999947164

  MsgBox k

End Sub

VBA Double Example 1-2

Run the code through shortcut key F5, and see what number we get this time.

VBA Double Example 1-3

This time we got the result of 2.57, so we got two decimal places. The original value we have assigned was 2.569999947164, so in this case, third, the placed decimal value is 9, so since this is more than 5, it has converted the second place decimal value 6 to 7.

Now, change the data type from Single to Double.

Code:

Sub Integer_Ex()

  Dim k As Double

  k = 2.569999947164

  MsgBox k

End Sub

VBA Double Example 1-4

Now, run the code manually and see how many digits we get in the message box result.

VBA Double Example 1-5

This time we got all the decimal values. So, we can supply up to 14 digits of decimal places under the Double data type.

Suppose you supply any value greater than 14 decimal positions that it will convert to the nearest value. For example, look at the below image.

VBA Double Example 1-6

We have typed 15 decimal places instead of 14. If we press the “Enter” key, it will be back to 14 digits only.

VBA Double Example 1-7

Instead of 59 (last two digits), we got 6, i.e., since the last digit is 9, which is greater than the last number 5, 5 is converted to the next integer value, i.e., 6.

Example #2

Now we will show how to work with cell referenceCell reference in excel is referring the other cells to a cell to use its values or properties. For instance, if we have data in cell A2 and want to use that in cell A1, use =A2 in cell A1, and this will copy the A2 value in A1.read more in a worksheet. Below are the numbers we have entered in the worksheet.

Data Example 2

Let us capture the same values next by using INTEGER data type, SINGLE data type, and DOUBLE type.

Below is the code to retain values from columns A to B using the INTEGER data type.

Code:

Sub Double_Ex()

  Dim k As Integer
  Dim CellValue As Integer

  For k = 1 To 6
    CellValue = Cells(k, 1).Value
    Cells(k, 2).Value = CellValue
  Next k

End Sub

Integer Example 2-1

Let us run the code through shortcut key F5 to see what values we get in column B.

Integer Example 2-2

When we used Integer as data type, we got all the whole numbers, i.e., without decimals.

Now, we will change the VBA data typeData type is the core character of any variable, it represents what is the type of value we can store in the variable and what is the limit or the range of values which can be stored in the variable, data types are built-in VBA and user or developer needs to be aware which type of value can be stored in which data type. Data types assign to variables tells the compiler storage size of the variable.read more of a variable from Integer to Single.

Code:

Sub Double_Ex()

  Dim k As Integer
  Dim CellValue As Single

  For k = 1 To 6
    CellValue = Cells(k, 1).Value
    Cells(k, 2).Value = CellValue
  Next k

End Sub

Single Example 2-3

This code will give the below result.

Single Example 2-4

This time we got only two decimal places.

Now, change the data type from Single to Double.

Code:

Sub Double_Ex()

  Dim k As Integer
  Dim CellValue As Double

  For k = 1 To 6
    CellValue = Cells(k, 1).Value
    Cells(k, 2).Value = CellValue
  Next k

End Sub

VBA Double Example 2-5

It will return the below result.

VBA Double Example 2-6

We have got exact values from column A.

Things to Remember

  • Double is an improved data type of Single data type.
  • It can hold up to 14 decimal places.
  • It consumes 8 bytes of system memory.

Recommended Articles

This article has been a guide to VBA Double. Here, we discuss using and declaring the VBA Double data type to store longer decimal places, along with practical examples and a downloadable Excel template. Below you can find some useful Excel VBA articles: –

  • VBA Long Data Type
  • VBA Variant Data Type
  • Variable Declaration in VBA
  • VBA DATEVALUE

VBA Double

Excel VBA Double Data Type

In VBA, we have different types of data types that are used as per the need. Like, Integer data type is used for numbers, the String data type is used for alphabets and text and a Long data type is used when we need to use numbers or text without any limit. Similarly, we have a Double data type that is used for decimal numbers. Although, we can use Single for decimals but this will retain only values to 2 points of the decimal. If we want to use decimal values without any limit then we have a Double data type for this.

If we use Integer instead of Double data type for decimal values then it will convert the decimal value into the nearest whole number integers. And also, there is some limit of using Double data type as well. Double can accommodate negative values from -1.79769313486231E308 to -4.94065645841247E324 and for positive values from 4.94065645841247E-324 to 1.79769313486232E308. Beyond this, the value cannot be accepted.

How to Use VBA Double Data Type in Excel?

Below are the different examples to use Double Data Type in Excel VBA.

You can download this VBA Double Excel Template here – VBA Double Excel Template

VBA Double – Example #1

In this example we will see, how different data types such as Integers and Single give the output for any decimal value and on the other hand how Double data type gives the output of the same decimal value. For this, follow the below steps:

Step 1: Open a Module from the Insert menu tab.

VBA Double Example 1-1

Step 2: Write the subprocedure for VBA Double. We can choose any other name for defining the name of VBA Double as per our choice.

Code:

Sub VBA_Double()

End Sub

VBA Double Example 1-2

Step 3: Now define a variable, let’s say it be A as Integer as shown below.

Code:

Sub VBA_Double()

Dim A As Integer

End Sub

VBA Double Example 1-3

Step 4: Assign a decimal value to the defined variable. Let’s say that the decimal value is 1.23456789 as shown below.

Code:

Sub VBA_Double()

Dim A As Integer
A = 1.23456789

End Sub

VBA Double Example 1-4

Step 5: Now we need a platform where we can see the output. Here, we can use Msgbox or Debug.Print function. We will use Msgbox which is the most traditional way of doing.

Code:

Sub VBA_Double()

Dim A As Integer
A = 1.23456789
MsgBox A

End Sub

VBA Double Example 1-5

Step 6: Run it by clicking on the Play button or by pressing the F5 key.

VBA Double Example 1-6

We will see, the output message box with value “1”. This means the Integer data type has converted the decimal value to the nearest whole number as 1.

Step 7: Now let’s change the data type from Integer to Single and see what Single data type will return us.

Code:

Sub VBA_Double()

Dim A As Single
A = 1.23456789
MsgBox A

End Sub

VBA Double Example 1-7

Step 8: Again run the code by clicking on the Play button or by pressing the F5 key.

VBA Double Example 1-8

We will see, the Single data type has returned the decimal value which is 1.234568 whereas we fed the input value as 1.23456789.

This means, the data type Single converts the fed decimal value into the nearest possible decimal value by last digit number conversion to nearest value which should be less than 5.

Step 9: Now we will use data type Double in place of Single and see what output we would get.

Code:

Sub VBA_Double()

Dim A As Double
A = 1.23456789
MsgBox A

End Sub

VBA Double Example 1-9

Step 10: Again run the code by clicking on the Play button or by pressing the F5 key.

VBA Double Example 1-10

We will see, the message box has exactly the same value which we fed which means Double didn’t convert the input value if it falls under its limit.

VBA Double – Example #2

In this example, we will use cell references. And we will start working in the same way as we have seen in example-1. For this, we have some data in column A in multiple-digit of decimals.

Multiple-digit of decimals

Follow the below steps:

Step 1: Write the subprocedure of VBA Double as shown below.

Code:

Sub VBA_Double2()

End Sub

VBA Double Example 2-2

Step 2: First, we will start with Integer. So define a variable as Integer as shown below. This would be our input variable.

Code:

Sub VBA_Double2()

Dim A As Integer

End Sub

VBA Double Example 2-3

Step 3: After that, we will again define a variable as an Integer. This is a variable in which we will store the output.

Code:

Sub VBA_Double2()

Dim A As Integer
Dim Deci As Integer

End Sub

Define variable as Integer

Step 4: Open a For-Next loop as shown below. This is where we will write the condition to get the data from a column to another column.

Code:

Sub VBA_Double2()

Dim A As Integer
Dim Deci As Integer

For

Next A

End Sub

For-Next loop

Step 5: Select the range of cells in variable A. Here, our data is from cell A1 to A10.

Code:

Sub VBA_Double2()

Dim A As Integer
Dim Deci As Integer

For A = 1 To 10

Next A

End Sub

VBA Double Example 2-6

Step 6: Now select the cell values which we want to place. Here the cell values are in the first column.

Code:

Sub VBA_Double2()

Dim A As Integer
Dim Deci As Integer

For A = 1 To 10

Deci = Cells(A, 1).Value

Next A

End Sub

VBA Double Example 2-7

Step 7: Now we will put the selected values into column 2 which is B in defined variable Deci.

Code:

Sub VBA_Double2()

Dim A As Integer
Dim Deci As Integer

For A = 1 To 10

Deci = Cells(A, 1).Value
Cells(A, 2).Value = Deci

Next A

End Sub

Defined variable Deci

Step 8: Run the code by clicking on the Play button or by pressing the F5 key.

Output of Data Type as Integer

As we had selected the Integer data type for output variable Deci, so it converted the decimal numbers into Integer whole numbers in Column B.

Step 9: Let’s change the data type of Deci which is the output variable from Integer to Single as shown below.

Code:

Sub VBA_Double2()

Dim A As Integer
Dim Deci As Single

For A = 1 To 10

Deci = Cells(A, 1).Value
Cells(A, 2).Value = Deci

Next A

End Sub

Data Type as Single

Step 10: Run the code by clicking on the Play button or by pressing the F5 key. We will see, decimal numbers from column A got converted into best possible closer decimal numbers.

Output of Data Type as Single

Step 11: Let’s change the output variable data type from Single to Double. And see, what we will get in Column B.

Code:

Sub VBA_Double2()

Dim A As Integer
Dim Deci As Double

For A = 1 To 10

Deci = Cells(A, 1).Value
Cells(A, 2).Value = Deci

Next A

End Sub

VBA Double Example 2-12

Step 12: Again Run the code by clicking on the Play button or by pressing the F5 key. This is how VBA Double works.

VBA Double Example 2-13

Pros & Cons of VBA Double

  • VBA Double converts the same number into decimal numbers in a specific range.
  • It is quite easy to use.
  • We can use Double data type instead of Integer or Single, in a similar way.
  • It doesn’t consider the decimal number beyond the limit which we have seen in the above introduction section.

Things to Remember

  • Limit of using VBA Double for negative values is from -1.79769313486231E308 to -4.94065645841247E324 and for positive values is from 94065645841247E-324 to 1.79769313486232E308.
  • VBA Double can hold up to 14 digit values if it is under the above-given limit.
  • VBA Double uses 8 Byte of system memory each type it is used.

Recommended Articles

This is a guide to Excel VBA Double. Here we discuss how to use Double data types in Excel VBA along with practical examples and downloadable excel template. You can also go through our other suggested articles –

  1. VBA Rename Sheet
  2. VBA ReDim
  3. VBA Variable Declaration
  4. VBA Environ

Понравилась статья? Поделить с друзьями:
  • Vba excel array пример
  • Vba excel array двумерный массив
  • Vba excel array listbox
  • Vba excel application selection
  • Vba excel application save as