Распознавание числовых значений в начале текстовых строк с помощью функции Val в коде VBA Excel. Определение текущей версии приложения Excel.
Функция Val
Val — это функция, которая распознает цифры с начала строки и до первого нецифрового символа, и возвращает их как числовое значение соответствующего типа.
Синтаксис
1 |
Val(string) |
string — строка; переменная или выражение, возвращающие строку.
Примечание
Функция Val прекращает чтение строки на первом символе, который она не может распознать как цифру. Если среди цифр встречаются точки (.), то первая интерпретируется как десятичный разделитель, а вторая — уже как текст, на ней распознавание числа прекращается.
Примеры
Примеры с функцией Val
1 2 3 4 5 6 7 8 9 |
Sub Primer() MsgBox Val("15 2 .3 38 попугаев") 'Результат: 152,338 MsgBox Val("15.03.2022") 'Результат: 15,03 MsgBox Val(".03.2022") 'Результат: 0,03 MsgBox Val("Моя дата: 15.03.2022") 'Результат: 0 MsgBox Val("+7 900 000 11 22") 'Результат: 79000001122 MsgBox Val("+7(900)000-11-22") 'Результат: 7 MsgBox Val("-7-900-000-11-22") 'Результат: -7 End Sub |
Определение версии Excel
Определение текущей версии приложения Excel из кода VBA с помощью функций Application.Version и Val:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
Sub ВерсияПриложения() Dim a As String Select Case Val(Application.Version) Case Is = 9 a = " (Excel 2000)" Case Is = 10 a = " (Excel 2002)" Case Is = 11 a = " (Excel 2003)" Case Is = 12 a = " (Excel 2007)" Case Is = 14 a = " (Excel 2010)" Case Is = 15 a = " (Excel 2013)" Case Is = 16 a = " (Excel 2016)" Case Is = 17 a = " (Excel 2019)" Case Is < 9 a = " (старее Excel 2000)" Case Is > 17 a = " (новее Excel 2019)" Case Else a = "" End Select MsgBox "Версия приложения " & Application.Version & a End Sub |
Здесь функция Val необходима из-за того, что функция Application.Version возвращает номер версии приложения в текстовом формате:
Содержание рубрики VBA Excel по тематическим разделам со ссылками на все статьи.