Access для Microsoft 365 Access 2021 Access 2019 Access 2016 Access 2013 Access 2010 Access 2007 Еще…Меньше
Возвращает числа, содержащиеся в строке в качестве числового значения соответствующего типа.
Синтаксис
Val(
строка
)
Обязательный аргументстрока — это любое допустимое строковое выражение.
Замечания
Функция Val прекращает считывание строки, встретив первый знак, не распознаваемый как часть числа. При этом не распознаются знаки, которые могут быть частью числового значения, например знак доллара и запятая. Тем не менее данная функция распознает префиксы оснований системы счисления &O (в восьмеричной системе) и &H (в шестнадцатеричной). Пробелы, знаки табуляции и перевода строки из аргумента исключаются.
В следующем примере возвращается значение 1615198:
Val(" 1615 198th Street N.E.")
В следующем примере функция Val возвращает десятичное значение -1 для заданного шестнадцатеричного значения:
Val("&HFFFF")
Примечание: Функция Val распознает в качестве допустимого десятичного разделителя только точку (.). Если используются другие десятичные разделители, например в международных приложениях, для преобразования строки в число воспользуйтесь функцией CDbl.
Пример запроса
|
|
SELECT DateofSale,val(DateofSale) AS testVal FROM ProductSales; |
Возвращает значения из столбца DateofSale и ведущие числовые символы из значения поля DateofSale в столбце testVal. Val() перестает читать строку с первого не числимого знака. |
Пример VBA
Примечание: В примерах ниже показано, как использовать эту функцию в модуле Visual Basic для приложений (VBA). Чтобы получить дополнительные сведения о работе с VBA, выберите Справочник разработчика в раскрывающемся списке рядом с полем Поиск и введите одно или несколько слов в поле поиска.
В этом примере функция Val используется для считывания чисел, содержащихся в строках.
Dim MyValue
MyValue = Val("2457") ' Returns 2457.
MyValue = Val(" 2 45 7") ' Returns 2457.
MyValue = Val("24 and 57") ' Returns 24.
Нужна дополнительная помощь?
Распознавание числовых значений в начале текстовых строк с помощью функции Val в коде VBA Excel. Определение текущей версии приложения Excel.
Val — это функция, которая распознает цифры с начала строки и до первого нецифрового символа, и возвращает их как числовое значение соответствующего типа.
Синтаксис
string — строка; переменная или выражение, возвращающие строку.
Примечание
Функция Val прекращает чтение строки на первом символе, который она не может распознать как цифру. Если среди цифр встречаются точки (.), то первая интерпретируется как десятичный разделитель, а вторая — уже как текст, на ней распознавание числа прекращается.
Примеры
Примеры с функцией Val
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 Val Function
VBA Val stands for Value. It converts the arrays or string which has some numbers into pure numerical values. Suppose if we give “111 One” as input then we will get only “111” as numerical output. This is quite useful while working in a data which we extract from some kind of database. In that database file, we may encounter such cells which may contain numbers along with extra spaces, hidden characters, special characters or alphabets. In that case, using Val can convert that string into numbers. Which can be used in further analysis.
How to Use Excel Val Function in VBA?
Let’s see the examples of Val in Excel VBA.
You can download this VBA VAL Excel Template here – VBA VAL Excel Template
Example #1 – VBA Val
It is quite easy to implement. For multiple types of applications and codes, we will first form a frame of code which we will be using multiple times in further examples.
Step 1: Go to Insert menu tab and select a Module as shown below.
Step 2: After that, we will get the blank window of Module. In that, write the sub category of VBA Val in excel or you can use any other name of subcategory as per your need.
Code:
Sub VBA_Val() End Sub
Step 3: Now define a variable DIM A or choose anything in place of alphabet A as assign it as Variant. Variant allows us to use any kind of data type while assigning the values in the variable.
Code:
Sub VBA_Val() Dim A As Variant End Sub
Step 4: And now assign any type of number sequence to variable A under VBA function VAL. We have assigned a combination of sequential number for demonstration as shown below with spaces between them.
Code:
Sub VBA_Val() Dim A As Variant A = Val("11 22 33") End Sub
Step 5: At last we will need a message box to print the values stored in variable A.
Code:
Sub VBA_Val() Dim A As Variant A = Val("11 22 33") MsgBox A End Sub
Step 6: Now compile the code step-by-step by pressing functional key F5. And then run it by clicking on the play button located below the menu bar as shown below. We will see this it returned the values stored in the variable. An as 112233 as shown below. All these values are without spaces.
Example #2 – VBA Val
In this example, we will see how VBA Val function is used for number containing some mathematical signs. For this, we will consider the code written above. We have taken out the frame of the code which will be used all the examples, as shown below.
Step 1: Go to Insert menu tab and select a Module as shown below
Step 2: As highlighted in the below screenshot, we will keep updating the value between brackets of VAL Function.
Code:
Sub VBA_Val2() Dim A As Variant A = Val("") MsgBox A End Sub
Step 3: Now let’s insert any number with mathematical sign plus (“+”) as shown below.
Code:
Sub VBA_Val2() Dim A As Variant A = Val("+111") MsgBox A End Sub
Step 4: Now compile and run the code. We will see, VBA Val has given the values as 111 without the plus sign. It is because logically all the values with or without plus signs are always positive in nature.
Step 5: Let’s change the value in Val function from +111 to -111. Now we will see if minus sign gets converted into the value or not.
Code:
Sub VBA_Val2() Dim A As Variant A = Val("-111") MsgBox A End Sub
Step 6: Compile the code and run. We will see, the minus sign is still retained in the value and message box has returned the value as -111. Which means any sign other than plus will not get converted with Val function in VBA.
Example #3 – VBA Val
In this example, we will see, how Val function would work for time formats.
Step 1: For this again we will use the above-defined format for Excel VBA Val as shown below.
Code:
Sub VBA_Val3() Dim A As Variant A = Val("") MsgBox A End Sub
Step 2: Now insert any time format in VAL function as circled in the above screenshot. Here we are adding 11 AM as shown below.
Code:
Sub VBA_Val3() Dim A As Variant A = Val("11 AM") MsgBox A End Sub
Step 3: Now compile the code and run. We will see, VAL function has eliminated AM from 11 AM and given us only 11 as output as shown below.
Step 4: Now let’s use some different format. Use any minutes with hours. We have used value 11:05 under Val brackets.
Code:
Sub VBA_Val3() Dim A As Variant A = Val("11:05 AM") MsgBox A End Sub
Step 5: Again compile and run the code. Again Val function has removed colon and minutes numbers along with AM and given us the whole number 11 as shown below.
Example #4 – VBA Val
In this example, we will see how the date format works in this.
Step 1: Again set the format for VBA Val function along with the complete code which we have seen in the above examples.
Code:
Sub VBA_Val4() Dim A As Variant A = Val("") MsgBox A End Sub
Step 2: Now insert any date format as per your need. We can insert data in a hyphen (“-“) format in a slash (“ / “) format. Let’s use the slash date format which is most often used.
Code:
Sub VBA_Val4() Dim A As Variant A = Val("06/26/2019") MsgBox A End Sub
Step 3: Now compile the code and run it. We will see VBA Val has returned the numerical values as “6”. Values after slash are not accepted by VBA Val.
Example #5 – VBA Val
In this example, we will see how this will work when the numbers are after the text.
Step 1: Take the format which we have seen above.
Code:
Sub VBA_Val2() Dim A As Variant A = Val("") MsgBox A End Sub
Step 2: In Val function brackets, let’s put some text and numbers. Let’s consider “AB 11” as shown below.
Code:
Sub VBA_Val2() Dim A As Variant A = Val("AB 11") MsgBox A End Sub
Step 3: Now run it. We will see, in the message box, only 0 is appearing. Which means VBA Val doesn’t consider the numbers after characters or text.
Pros of VBA Val
- It can be used in the data which is extracted from some kind of tool or database. Which consists of different kind of characters along with numbers.
- It is quite easy to separate numbers by using VBA Val in any kind data.
- We can choose any format which consists of a number or set of number to separate it from other characters.
Things to Remember
- It also considers the decimals.
- Save the file as Marco enable excel so that written would be retained.
- If record this process in VBA, then obtained code will be much lengthier than the examples which we have seen above.
- There is not an alternate insert function available in Excel which gives the same result as VBA Val.
Recommended Articles
This is a guide to VBA Val. Here we discuss how to get Val in VBA Excel along with practical examples and downloadable excel template. You can also go through our other suggested articles –
- VBA InStr
- VBA Integer
- VBA Select Cell
- VBA Transpose
title | keywords | f1_keywords | ms.prod | ms.assetid | ms.date | ms.localizationpriority |
---|---|---|---|---|---|---|
Val function (Visual Basic for Applications) |
vblr6.chm1009055 |
vblr6.chm1009055 |
office |
49909fd8-07bf-3b94-4c6c-85ad595d6fcb |
12/12/2018 |
medium |
Returns the numbers contained in a string as a numeric value of appropriate type.
Syntax
Val(string)
The required string argument is any valid string expression.
Remarks
The Val function stops reading the string at the first character that it can’t recognize as part of a number. Symbols and characters that are often considered parts of numeric values, such as dollar signs and commas, are not recognized.
However, the function recognizes the radix prefixes &O
(for octal) and &H
(for hexadecimal). Blanks, tabs, and linefeed characters are stripped from the argument.
The following returns the value 1615198:
Val(" 1615 198th Street N.E.")
In the following code, Val returns the decimal value -1 for the hexadecimal value shown:
[!NOTE]
The Val function recognizes only the period ( . ) as a valid decimal separator. When different decimal separators are used, as in international applications, use CDbl instead to convert a string to a number.
Example
This example uses the Val function to return the numbers contained in a string.
Dim MyValue MyValue = Val("2457") ' Returns 2457. MyValue = Val(" 2 45 7") ' Returns 2457. MyValue = Val("24 and 57") ' Returns 24.
[!NOTE]
The Val function recognizes deprecated data type suffixes prior to conversion and may result in a type mismatch error. For example, fifty percent represented as the string «50%» will convert as expected to 50 but Val(«50.5%») will raise an error because the percentage symbol is seen as a suffix to declare the Data Type as an Integer, which it is not in this case. The full list of data type suffixes comprises Single ( ! ), Currency ( @ ), Double ( # ), String ( $ ), Integer ( % ), Long ( & ) and LongLong ( ^ ) for 64-bit hosts.
See also
- Functions (Visual Basic for Applications)
[!includeSupport and feedback]
This Excel tutorial explains how to use the Excel VAL function with syntax and examples.
Description
The Microsoft Excel VAL function accepts a string as input and returns the numbers found in that string.
TIP: The Val function stops reading the string at the first character it can’t recognize as part of a number. This means that the Val( string )
function only seems to work when the number in that string is at *the beginning* of said string.
The VAL function is a built-in function in Excel that is categorized as a String/Text Function. It can be used as a VBA function (VBA) in Excel. As a VBA function, you can use this function in macro code that is entered through the Microsoft Visual Basic Editor.
Syntax
The syntax for the VAL function in Microsoft Excel is:
Val( string )
Parameters or Arguments
- string
- A string expression that you wish to return the numbers found within.
Returns
The VAL function returns a numeric value.
Note
- The VAL function will stop reading the string once it encounters the first non-numeric character. This does not include spaces.
- If no numeric value is found at the start of the string, the Val function will return 0.
Applies To
- Excel for Office 365, Excel 2019, Excel 2016, Excel 2013, Excel 2011 for Mac, Excel 2010, Excel 2007, Excel 2003, Excel XP, Excel 2000
Type of Function
- VBA function (VBA)
Example (as VBA Function)
The VAL function can only be used in VBA code in Microsoft Excel.
Let’s look at some Excel VAL function examples and explore how to use the VAL function in Excel VBA code:
Val("10 Main Street") Result: 10 Val("34 10 Main Street") Result: 3410 Val(" 34 10 Main Street") Result: 3410 Val(" 34 - 10 Main Street") Result: 34 Val("075") Result: 75 Val("There are 5 houses") Result: 0
For example:
Dim LNumber As Double LNumber = Val("56.2 tables")
In this example, the variable called LNumber would now contain the value of 56.2.