VBA Left (& Left$) Function – Extract Text From Left
Written by
Reviewed by
In this Article
This tutorial will demonstrate how to use the Left VBA Function.
Left Function
The VBA Left function returns the first n characters from a string.
VBA Left Function n First Characters
The VBA Left function returns the first n characters from a string:
Sub LeftExample_1()
MsgBox Left("ABCDEFGHI", 4) 'Result is: "ABCD"
MsgBox Left("ABCDEFGHI", 2) 'Result is: "AB"
MsgBox Left("ABCDEFGHI", 1) 'Result is: "A"
MsgBox Left("ABCDEFGHI", 100) 'Result is: "ABCDEFGHI"
End Sub
VBA Left Function n First Characters in a Variable
As shown above, you can define a string simply by entering text surrounded by quotation marks. But the LEFT Function will also work with string variables. These examples will extract the first n characters from a string variable.
Sub LeftExample_2()
Dim StrEx As String 'Define a string variable
StrEx = "ABCDEFGHI"
MsgBox Left(StrEx, 4) 'Result is: "ABCD"
MsgBox Left(StrEx, 2) 'Result is: "AB"
MsgBox Left(StrEx, 1) 'Result is: "A"
MsgBox Left(StrEx, 100) 'Result is: "ABCDEFGHI"
End Sub
VBA Left Function n First Characters in a Cell
Strings can be defined in VBA code but also you can use values from cells. Read the value of a cell, keep it in a string variable, and extract n first characters from that Worksheet Cell value.
Sub LeftExample_3()
Dim StrEx As String 'Define a string variable
'Read the value of cell A1 in worksheet Sheet1
StrEx = ThisWorkbook.Worksheets("Sheet1").Range("A1").Value
'For this example the value of cell A1 is "A bCDEFGHI"
MsgBox Left(StrEx, 4) 'Result is: "ABCD"
MsgBox Left(StrEx, 2) 'Result is: "AB"
MsgBox Left(StrEx, 1) 'Result is: "A"
MsgBox Left(StrEx, 100) 'Result is: "ABCDEFGHI"
End Sub
VBA Left Function Trim off the Last Letter
To remove letters from the end of a string, use the LEFT Function along with the LEN Function.
The VBA LEN function counts the number of characters in a string:
Len(StrEx)
By combining the functions, we can remove a certain number of characters from the end of the string:
Sub LeftExample_4()
Dim StrEx As String 'Define a string variable
StrEx = "ABCDEF"
MsgBox Left(StrEx, Len(StrEx)) 'Result is: "ABCDEF"
MsgBox Left(StrEx, Len(StrEx) - 1) 'Result is: "ABCDE"
MsgBox Left(StrEx, Len(StrEx) - 2) 'Result is: "ABCD"
End Sub
VBA Left to Extract First Name
To extract the first name from a string with a full name, use the Left Function along with the Instr Function.
The VBA Instr function searches for a substring inside a string and returns the position number of the substring.
InStr(StrEx, " ")
By combining the functions, we can extract the first word from a phrase:
Sub LeftExample_5()
Dim StrEx As String 'Define a string variable
StrEx = "Alexander Graham Bell"
MsgBox Left(StrEx, InStr(StrEx, " "))
'Result is: "Alexander " (notice the space at the end)
MsgBox Left(StrEx, InStr(StrEx, " ") - 1)
'Result is: "Alexander" (NO space at the end)
StrEx = "Leonardo da Vinci"
MsgBox InStr(StrEx, " ")
'Result is: 9 because space is found in position 9
MsgBox Left(StrEx, InStr(StrEx, " ") - 1)
'Result is: "Leonardo"
End Sub
VBA Left$ Function vs Left Function
Both the Left and the Left$ function will return the same answer if the variable where the data is being returned to is declared as a string. However, if the variable has been declared as a variant, then the Left function is allowed to return NULL values whereas the Left$ function can only return string values.
If, for example, you are truing to return some data from an Access query, but the data returned is a NULL value, the Left$ function will return an error.
Have a look at the code below:
In the above example, even though our variable has been declared as a variant, the Left$ function prevents the variable being populated with the NULL value.
In the code below however, the variable is populated with the NULL value.