VBA Left (& Left$) Function – Extract Text From Left

Written by

Editorial Team

Reviewed by

Steve Rynearson

Last updated on March 3, 2022

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.

left cell value vba

 

 

 

 

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:

leftleft string

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.

left left populate variant

 

vba-free-addin

VBA Code Examples Add-in

Easily access all of the code examples found on our site.

Simply navigate to the menu, click, and the code will be inserted directly into your module. .xlam add-in.

(No installation required!)

Free Download

Return to VBA Code Examples