🔥 Свойство Value2 объекта Range
Свойство Range.Value2 работает аналогично свойству Value, но оно не выполняет округление для чисел с плавающей запятой и дат. Это свойство полезно для работы с точными значениями, особенно при манипуляции с датами и временными значениями.
📌 Примеры:
1️⃣ Установить точное значение в ячейку с использованием Value2:
Редактировать
🔹 Установит значение 12345.6789 в ячейку A1, не округляя число.
2️⃣ Прочитать точное значение из ячейки с датой:
🔹 Прочитает точное значение даты или времени из ячейки B1 и выведет его в сообщении.
3️⃣ Пример использования с датами:
🔹 Установит в ячейку C1 точную дату 1 января 2025 года, не округляя её.
💡 Важно:
✔️ Value2 может быть полезно для работы с датами и числами, где округление не требуется.
✔️ Это свойство особенно подходит, когда нужно работать с данными, в которых важна точность.
#VBA #ExcelVBA #Range #Value2
Свойство Range.Value2 работает аналогично свойству Value, но оно не выполняет округление для чисел с плавающей запятой и дат. Это свойство полезно для работы с точными значениями, особенно при манипуляции с датами и временными значениями.
📌 Примеры:
1️⃣ Установить точное значение в ячейку с использованием Value2:
Редактировать
Range("A1").Value2 = 12345.6789 🔹 Установит значение 12345.6789 в ячейку A1, не округляя число.
2️⃣ Прочитать точное значение из ячейки с датой:
Dim myDate As Date
myDate = Range("B1").Value2
MsgBox myDate
🔹 Прочитает точное значение даты или времени из ячейки B1 и выведет его в сообщении.
3️⃣ Пример использования с датами:
Range("C1").Value2 = DateSerial(2025, 1, 1) 🔹 Установит в ячейку C1 точную дату 1 января 2025 года, не округляя её.
💡 Важно:
✔️ Value2 может быть полезно для работы с датами и числами, где округление не требуется.
✔️ Это свойство особенно подходит, когда нужно работать с данными, в которых важна точность.
#VBA #ExcelVBA #Range #Value2
🔥 Свойство Width объекта Range
Свойство Range.Width позволяет узнать ширину диапазона в пунктах. Это свойство полезно для получения точных размеров диапазонов и манипуляции с шириной столбцов в Excel.
📌 Примеры:
1️⃣ Получить ширину диапазона A1:B2:
🔹 Выведет в сообщении ширину диапазона A1:B2 в пунктах.
2️⃣ Использовать Width для изменения ширины столбца на основе размера диапазона:
🔹 Установит ширину столбцов A и B так, чтобы она приблизительно соответствовала ширине диапазона A1:B2.
💡 Важно:
ColumnWidth и Width измеряются в разных единицах (поэтому результат мы делим на 6):
✅ ColumnWidth измеряется в символах, которые могут быть отображены в текущем шрифте ячейки. Это не является точной физической единицей измерения, но оно соответствует ширине ячейки в количестве стандартных символов, которые могут быть вписаны в ячейку с учетом шрифта и размера шрифта.
✅ Width измеряется в пунктах (points), что является стандартной единицей измерения в типографике. 1 пункт = 1/72 дюйма. Это более точная единица, и она напрямую связана с физической шириной диапазона в Excel.
3️⃣ Сравнение ширины двух ячеек:
🔹 Сравнит ширину ячеек A1 и B1 и выведет соответствующее сообщение.
💡 Важно:
✔️ Width возвращает ширину диапазона в пунктах, что важно при точной настройке размеров ячеек.
✔️ Можно использовать это свойство, чтобы динамически регулировать размеры столбцов или диапазонов.
#VBA #ExcelVBA #Range #Width
Свойство Range.Width позволяет узнать ширину диапазона в пунктах. Это свойство полезно для получения точных размеров диапазонов и манипуляции с шириной столбцов в Excel.
📌 Примеры:
1️⃣ Получить ширину диапазона A1:B2:
Dim rngWidth As Double
rngWidth = Range("A1:B2").Width
MsgBox rngWidth
🔹 Выведет в сообщении ширину диапазона A1:B2 в пунктах.
2️⃣ Использовать Width для изменения ширины столбца на основе размера диапазона:
Range("A1:B2").ColumnWidth = Range("A1:B2").Width / 6🔹 Установит ширину столбцов A и B так, чтобы она приблизительно соответствовала ширине диапазона A1:B2.
💡 Важно:
ColumnWidth и Width измеряются в разных единицах (поэтому результат мы делим на 6):
✅ ColumnWidth измеряется в символах, которые могут быть отображены в текущем шрифте ячейки. Это не является точной физической единицей измерения, но оно соответствует ширине ячейки в количестве стандартных символов, которые могут быть вписаны в ячейку с учетом шрифта и размера шрифта.
✅ Width измеряется в пунктах (points), что является стандартной единицей измерения в типографике. 1 пункт = 1/72 дюйма. Это более точная единица, и она напрямую связана с физической шириной диапазона в Excel.
3️⃣ Сравнение ширины двух ячеек:
If Range("A1").Width > Range("B1").Width Then
MsgBox "Ячейка A1 шире!"
ElseIf Range("A1").Width < Range("B1").Width Then
MsgBox "Ячейка B1 шире!"
Else
MsgBox "Ячейки одинаковой ширины!"
End If🔹 Сравнит ширину ячеек A1 и B1 и выведет соответствующее сообщение.
💡 Важно:
✔️ Width возвращает ширину диапазона в пунктах, что важно при точной настройке размеров ячеек.
✔️ Можно использовать это свойство, чтобы динамически регулировать размеры столбцов или диапазонов.
#VBA #ExcelVBA #Range #Width
🔥 Свойство Height объекта Range
Свойство Range.Height позволяет получить высоту диапазона в пунктах. Это свойство полезно для работы с точными размерами строк в Excel и для динамического изменения размеров ячеек.
📌 Примеры:
1️⃣ Получить высоту диапазона A1:B2:
🔹 Выведет в сообщении высоту диапазона A1:B2 в пунктах.
2️⃣ Использование Height для изменения высоты строки на основе размера диапазона:
🔹 Установит высоту строки так, чтобы она соответствовала половине высоты диапазона A1:B2.
3️⃣ Сравнение высоты двух ячеек:
🔹 Сравнит высоту ячеек A1 и A2 и выведет соответствующее сообщение.
💡 Важно:
✔️ Height возвращает высоту диапазона в пунктах, что позволяет точно контролировать размеры ячеек.
✔️ Это свойство особенно полезно для работы с высотой строк и точной настройкой размеров ячеек.
#VBA #ExcelVBA #Range #Height
Свойство Range.Height позволяет получить высоту диапазона в пунктах. Это свойство полезно для работы с точными размерами строк в Excel и для динамического изменения размеров ячеек.
📌 Примеры:
1️⃣ Получить высоту диапазона A1:B2:
Dim rngHeight As Double
rngHeight = Range("A1:B2").Height
MsgBox rngHeight
🔹 Выведет в сообщении высоту диапазона A1:B2 в пунктах.
2️⃣ Использование Height для изменения высоты строки на основе размера диапазона:
Range("A1:B2").RowHeight = Range("A1:B2").Height / 2 🔹 Установит высоту строки так, чтобы она соответствовала половине высоты диапазона A1:B2.
3️⃣ Сравнение высоты двух ячеек:
If Range("A1").Height > Range("A2").Height Then
MsgBox "Ячейка A1 выше!"
ElseIf Range("A1").Height < Range("A2").Height Then
MsgBox "Ячейка A2 выше!"
Else
MsgBox "Ячейки одинаковой высоты!"
End If🔹 Сравнит высоту ячеек A1 и A2 и выведет соответствующее сообщение.
💡 Важно:
✔️ Height возвращает высоту диапазона в пунктах, что позволяет точно контролировать размеры ячеек.
✔️ Это свойство особенно полезно для работы с высотой строк и точной настройкой размеров ячеек.
#VBA #ExcelVBA #Range #Height
🔥 Свойство HasFormula объекта Range
Свойство Range.HasFormula позволяет определить, содержит ли ячейка формулу. Это свойство удобно для проверки и обработки ячеек с вычисляемыми значениями. Оно возвращает True, если в ячейке есть формула, и False, если формулы нет.
📌 Примеры:
1️⃣ Проверить, есть ли формула в ячейке A1:
🔹 Выведет сообщение о наличии или отсутствии формулы в A1.
2️⃣ Выделить все ячейки с формулами в диапазоне A1:D10:
🔹 Закрасит в жёлтый цвет все ячейки с формулами в диапазоне A1:D10.
3️⃣ Очистить все формулы в диапазоне B1:B10, оставив только их значения:
🔹 Удалит формулы из ячеек, значения ячеек будут сохранены.
💡 Важно:
✔️ HasFormula — это логическое свойство, возвращающее True или False.
✔️ Полезно при проверке и обработке данных, где нужно учитывать наличие вычислений.
✔️ Не даёт информации о содержимом формулы, только факт её наличия.
#VBA #ExcelVBA #Range #HasFormula
Свойство Range.HasFormula позволяет определить, содержит ли ячейка формулу. Это свойство удобно для проверки и обработки ячеек с вычисляемыми значениями. Оно возвращает True, если в ячейке есть формула, и False, если формулы нет.
📌 Примеры:
1️⃣ Проверить, есть ли формула в ячейке A1:
If Range("A1").HasFormula Then
MsgBox "Ячейка A1 содержит формулу!"
Else
MsgBox "В ячейке A1 нет формулы."
End If 🔹 Выведет сообщение о наличии или отсутствии формулы в A1.
2️⃣ Выделить все ячейки с формулами в диапазоне A1:D10:
Dim cell As Range
For Each cell In Range("A1:D10")
If cell.HasFormula Then
cell.Interior.Color = RGB(255, 255, 0) ' Желтый цвет
End If
Next cell
🔹 Закрасит в жёлтый цвет все ячейки с формулами в диапазоне A1:D10.
3️⃣ Очистить все формулы в диапазоне B1:B10, оставив только их значения:
Range("B1:B10").Value = Range("B1:B10").Value 🔹 Удалит формулы из ячеек, значения ячеек будут сохранены.
💡 Важно:
✔️ HasFormula — это логическое свойство, возвращающее True или False.
✔️ Полезно при проверке и обработке данных, где нужно учитывать наличие вычислений.
✔️ Не даёт информации о содержимом формулы, только факт её наличия.
#VBA #ExcelVBA #Range #HasFormula
🔥 Свойство Hidden объекта Range
Свойство Range.Hidden позволяет скрывать или отображать строки и столбцы в Excel. Это свойство особенно полезно при автоматизации отчетов и создании динамических таблиц.
📌 Примеры:
1️⃣ Скрыть строку, содержащую ячейку A1:
🔹 Скрывает всю строку, в которой находится A1.
2️⃣ Скрыть столбец, содержащий ячейку B2:
🔹 Скрывает весь столбец, в котором находится B2.
3️⃣ Показать скрытую строку 5:
🔹 Делает строку 5 видимой.
4️⃣ Переключить видимость столбца C:
🔹 Если столбец C был скрыт, он станет видимым, и наоборот.
5️⃣ Скрыть все строки в диапазоне A1:A10, содержащие отрицательные значения:
🔹 Скрывает все строки в диапазоне A1:A10, где в ячейках находятся отрицательные числа.
💡 Важно:
✔️ Hidden можно использовать как для строк (EntireRow), так и для столбцов (EntireColumn).
✔️ Скрытие не удаляет данные, а просто делает их невидимыми.
✔️ Полезно при создании динамических отчетов и фильтрации данных.
#VBA #ExcelVBA #Range #Hidden
Свойство Range.Hidden позволяет скрывать или отображать строки и столбцы в Excel. Это свойство особенно полезно при автоматизации отчетов и создании динамических таблиц.
📌 Примеры:
1️⃣ Скрыть строку, содержащую ячейку A1:
Range("A1").EntireRow.Hidden = True 🔹 Скрывает всю строку, в которой находится A1.
2️⃣ Скрыть столбец, содержащий ячейку B2:
Range("B2").EntireColumn.Hidden = True 🔹 Скрывает весь столбец, в котором находится B2.
3️⃣ Показать скрытую строку 5:
Rows(5).Hidden = False
🔹 Делает строку 5 видимой.
4️⃣ Переключить видимость столбца C:
Columns("C").Hidden = Not Columns("C").Hidden 🔹 Если столбец C был скрыт, он станет видимым, и наоборот.
5️⃣ Скрыть все строки в диапазоне A1:A10, содержащие отрицательные значения:
Dim cell As Range
For Each cell In Range("A1:A10")
If cell.Value < 0 Then
cell.EntireRow.Hidden = True
End If
Next cell
🔹 Скрывает все строки в диапазоне A1:A10, где в ячейках находятся отрицательные числа.
💡 Важно:
✔️ Hidden можно использовать как для строк (EntireRow), так и для столбцов (EntireColumn).
✔️ Скрытие не удаляет данные, а просто делает их невидимыми.
✔️ Полезно при создании динамических отчетов и фильтрации данных.
#VBA #ExcelVBA #Range #Hidden
*Резервируется память в байтах на каждую переменную соответствующего типа.
Тип данных Variant может принимать специальные значения: Empty, Error, Nothing и Null.
Кроме встроенных типов данных VBA Excel позволяет использовать пользовательские типы, создаваемые с помощью оператора Type. Диапазон значений пользовательского типа данных определяется встроенными типами, из которых он состоит.
Тип данных Variant может принимать специальные значения: Empty, Error, Nothing и Null.
Кроме встроенных типов данных VBA Excel позволяет использовать пользовательские типы, создаваемые с помощью оператора Type. Диапазон значений пользовательского типа данных определяется встроенными типами, из которых он состоит.
🔥 Массивы в VBA Excel
Массивы в VBA — это структуры данных, которые позволяют хранить несколько значений под одним именем. Они удобны для работы с большими объемами данных, поскольку позволяют быстро обрабатывать их в циклах.
📌 Объявление массивов
1️⃣ Одномерный (фиксированный) массив с фиксированным числом элементов
🔹 В этом массиве 5 элементов, доступных по индексам 1–5.
2️⃣ Динамический массив (размер можно менять в процессе работы)
🔹 Используем ReDim, чтобы задать размер массива во время выполнения кода.
3️⃣ Многомерный массив
🔹 Это массив 3×3, где обозначение каждого элемента соответствует формуле - matrix(строка, столбец).
#VBA #ExcelVBA #Array #Массив #Массивы
Массивы в VBA — это структуры данных, которые позволяют хранить несколько значений под одним именем. Они удобны для работы с большими объемами данных, поскольку позволяют быстро обрабатывать их в циклах.
📌 Объявление массивов
1️⃣ Одномерный (фиксированный) массив с фиксированным числом элементов
Dim arr(1 To 5) As Integer
arr(1) = 10
arr(2) = 20
MsgBox arr(1) ' Выведет 10
🔹 В этом массиве 5 элементов, доступных по индексам 1–5.
2️⃣ Динамический массив (размер можно менять в процессе работы)
Dim arr() As Integer
ReDim arr(1 To 10)
arr(1) = 100
🔹 Используем ReDim, чтобы задать размер массива во время выполнения кода.
3️⃣ Многомерный массив
Dim matrix(1 To 3, 1 To 3) As Integer
matrix(1, 1) = 5
matrix(2, 3) = 10
MsgBox matrix(2, 3) ' Выведет 10
🔹 Это массив 3×3, где обозначение каждого элемента соответствует формуле - matrix(строка, столбец).
#VBA #ExcelVBA #Array #Массив #Массивы
Заполнение массивов
🔄 Циклы и массивы
Массивы удобно заполнять и читать с помощью цикла For:
🏎 Быстрое заполнение массивов через Array
🔹 Array() создает массив сразу со значениями, но его индексация начинается с 0!
📥 Заполнение массива из диапазона
В VBA можно легко загрузить данные из диапазона Excel в массив, обработать их и затем записать обратно в другой диапазон.
1️⃣ Заполнить массив из диапазона:
🔹 Данные из диапазона A1:A5 загружаются в массив arr.
🔹 Индексация массива начинается с 1, а не с 0.
🔹 Массив получается двумерным, даже если диапазон одномерный - arr(строка, столбец).
2️⃣ Передача массива обратно в диапазон:
🔹 Используем Transpose(), чтобы записать одномерный массив в вертикальный диапазон.
3️⃣ Копирование данных из одного диапазона в другой через массив:
🔹 Копируем значения из A1:C5 в E1:G5, используя массив.
🔹 Такой способ быстрее, чем копирование ячеек по одной.
#Range #Array #ЗаполнениеМассива #ЗаполнениеМассивов
🔄 Циклы и массивы
Массивы удобно заполнять и читать с помощью цикла For:
Dim i As Integer, arr(1 To 5) As Integer
For i = 1 To 5
arr(i) = i * 10
Next i
MsgBox arr(3) ' Выведет 30
🏎 Быстрое заполнение массивов через Array
Dim arr As Variant
arr = Array(10, 20, 30, 40)
MsgBox arr(2) ' Выведет 30 (нумерация начинается с 0!)
🔹 Array() создает массив сразу со значениями, но его индексация начинается с 0!
📥 Заполнение массива из диапазона
В VBA можно легко загрузить данные из диапазона Excel в массив, обработать их и затем записать обратно в другой диапазон.
1️⃣ Заполнить массив из диапазона:
Dim arr As Variant
arr = Range("A1:A5").Value
MsgBox arr(3, 1) ' Выведет значение из A3
🔹 Данные из диапазона A1:A5 загружаются в массив arr.
🔹 Индексация массива начинается с 1, а не с 0.
🔹 Массив получается двумерным, даже если диапазон одномерный - arr(строка, столбец).
2️⃣ Передача массива обратно в диапазон:
Dim arr As Variant
arr = Array(10, 20, 30, 40, 50)
Range("B1:B5").Value = Application.Transpose(arr)
🔹 Используем Transpose(), чтобы записать одномерный массив в вертикальный диапазон.
3️⃣ Копирование данных из одного диапазона в другой через массив:
Dim dataArr As Variant
dataArr = Range("A1:C5").Value ' Читаем данные из диапазона A1:C5
Range("E1:G5").Value = dataArr ' Записываем их в E1:G5
🔹 Копируем значения из A1:C5 в E1:G5, используя массив.
🔹 Такой способ быстрее, чем копирование ячеек по одной.
#Range #Array #ЗаполнениеМассива #ЗаполнениеМассивов
✨ Дата прописью в Excel
Функция «ДатаПрописью» преобразует даты из числового формата Excel в текст. Интервал преобразуемых дат: с 2001 по 2099 год. Используется в шаблонах доверенностей, договоров, соглашений, решений, уставов и других документов, заполняющихся в Excel. Формат преобразования: 01.01.2001 — «Первого января две тысячи первого года».
🛠 Код функции:
🔹 Если хотите, чтобы функция «ДатаПрописью» была доступна из всех рабочих книг на вашем компьютере, вставьте приведенный код в модуль, расположенный в Личной книге макросов.
#VBA #ExcelVBA #ДатаПрописью
Функция «ДатаПрописью» преобразует даты из числового формата Excel в текст. Интервал преобразуемых дат: с 2001 по 2099 год. Используется в шаблонах доверенностей, договоров, соглашений, решений, уставов и других документов, заполняющихся в Excel. Формат преобразования: 01.01.2001 — «Первого января две тысячи первого года».
🛠 Код функции:
'Преобразование даты из числового формата в текст с 2001 по 2099 год
Public Function ДатаПрописью(md As Date) As String
If (md < 36892) Or (md > 73050) Then
ДатаПрописью = "Преобразуемая дата должна быть с 2001 по 2099 год!"
Else
Dim den As Byte, dg(1 To 4) As Byte, mes As Byte, god As Byte, _
mespr As String, dmgpr As String
den = Day(md)
mes = Month(md)
god = (Year(md) Mod 100)
dg(1) = god Mod 10
dg(2) = Fix(god / 10)
dg(3) = den Mod 10
dg(4) = Fix(den / 10)
Dim dgpr(1 To 4) As String, i1 As Byte
For i1 = 1 To 4
If (i1 = 1) Or (i1 = 3) Then
If dg(i1 + 1) = 1 Then
dgpr(i1) = Choose(dg(i1) + 1, "десятого ", "одиннадцатого ", "двенадцатого ", _
"тринадцатого ", "четырнадцатого ", "пятнадцатого ", "шестнадцатого ", _
"семнадцатого ", "восемнадцатого ", "девятнадцатого ")
Else
dgpr(i1) = Choose(dg(i1) + 1, "", "первого ", "второго ", _
"третьего ", "четвертого ", "пятого ", "шестого ", _
"седьмого ", "восьмого ", "девятого ")
End If
ElseIf (i1 = 2) Or (i1 = 4) Then
If dg(i1 - 1) = 0 Then
dgpr(i1) = Choose(dg(i1) + 1, "", "", "двадцатого ", _
"тридцатого ", "сорокового ", "пятидесятого ", "шестидесятого ", _
"семидесятого ", "восьмидесятого ", "девяностого ")
Else
dgpr(i1) = Choose(dg(i1) + 1, "", "", "двадцать ", _
"тридцать ", "сорок ", "пятьдесят ", "шестьдесят ", _
"семьдесят ", "восемьдесят ", "девяносто ")
End If
End If
Next
mespr = Choose(mes, "января ", "февраля ", "марта ", "апреля ", "мая ", _
"июня ", "июля ", "августа ", "сентября ", "октября ", "ноября ", "декабря ")
dmgpr = dgpr(4) & dgpr(3) & mespr & "две тысячи " & dgpr(2) & dgpr(1) & "года"
ДатаПрописью = Replace(dmgpr, Left(dmgpr, 1), UCase(Left(dmgpr, 1)), 1, 1)
End If
End Function
🔹 Если хотите, чтобы функция «ДатаПрописью» была доступна из всех рабочих книг на вашем компьютере, вставьте приведенный код в модуль, расположенный в Личной книге макросов.
#VBA #ExcelVBA #ДатаПрописью
🔹 Функция CBool
Функция CBool используется для преобразования аргументов в тип данных Boolean.
📌 Пример:
#VBA #ExcelVBA #CBool
Функция CBool используется для преобразования аргументов в тип данных Boolean.
📌 Пример:
Dim a
a = CBool(10) 'Результат: True
a = CBool(0) 'Результат: False
a = CBool("True") 'Результат: True
a = CBool("Test") 'Результат: Error
Dim a, b, c
a = "Test1"
b = "Test2"
c = CBool(a = b) 'Результат: False
c = CBool(a <> b) 'Результат: True
#VBA #ExcelVBA #CBool
🔹 Функция CDate
Функция CDate используется для преобразования аргументов в тип данных Date. Она распознает форматы даты в соответствии с национальной настройкой системы.
📌 Пример:
#VBA #ExcelVBA #CDate
Функция CDate используется для преобразования аргументов в тип данных Date. Она распознает форматы даты в соответствии с национальной настройкой системы.
📌 Пример:
Dim a As String, b As Date, c As Double
a = "28.01.2021"
b = CDate(a) 'Результат: #28.01.2021#
c = CDbl(b) 'Результат: 44224
Dim a
a = CDate(44298.63895) 'Результат: #12.04.2021 15:20:05#
a = CDate(44298) 'Результат: #12.04.2021#
a = CDate(0.63895) 'Результат: #15:20:05#
#VBA #ExcelVBA #CDate
🔹 Функция CDbl
Функция CDbl используется для преобразования аргументов в тип данных Double.
📌 Пример:
💡 Примечание:
Eсли основной язык системы – русский, при записи в редакторе VBA Excel дробного числа в виде текста, ставим в качестве разделителя десятичных разрядов – запятую. Проверьте разделитель по умолчанию для своей национальной системы:
#VBA #ExcelVBA #CDbl
Функция CDbl используется для преобразования аргументов в тип данных Double.
📌 Пример:
Dim a As String, b As String, c As Double
a = "45,3695423"
b = "548955,756"
c = CDbl(a) + CDbl(b) 'Результат: 549001,1255423
💡 Примечание:
Eсли основной язык системы – русский, при записи в редакторе VBA Excel дробного числа в виде текста, ставим в качестве разделителя десятичных разрядов – запятую. Проверьте разделитель по умолчанию для своей национальной системы:
MsgBox Application.DecimalSeparator
#VBA #ExcelVBA #CDbl
🔹 Функция CDec
Функция CDec используется для преобразования аргументов в тип данных Decimal.
📌 Пример:
#VBA #ExcelVBA #CDec
Функция CDec используется для преобразования аргументов в тип данных Decimal.
📌 Пример:
Dim a As String, b As Double, c
a = "5,9228162514264337593543950335"
b = 5.92281625142643
c = CDec(a) - CDec(b) 'Результат: 0,0000000000000037593543950335
Dim a As Double, b As String, c
a = 4.2643E-14
b = CStr(a) 'Результат: "4,2643E-14"
c = CDec(a) 'Результат: 0,000000000000042643
#VBA #ExcelVBA #CDec