In this tutorial we are going to explain you how you can separate the strings using the VBA Macro Code in Microsoft Excel.
Below Is the Situation in which you need to separate the Full Name string to the First Name and the Last Name string:
You can place a command button on your worksheet (as shown in the above screenshot) And add the following code lines:
- We Declare a variable called Full_Name of Type String, a variable called Comma_Position of Type Integer, And a variable called i of Type Integer.
- We use a loop to execute the operations on each name entered in Excel. First, we initialize the variable Full_Name. Next, we use the Instr function to find the position of the comma.
- Now, we want to write the part after the comma to Column B and the part in front of the comma to column C. You can achieve this by adding below mentioned lines in you code:
- Now, close the loop.
- Final Code will look like below:
- To test the program, Add six names separated by a comma and space to Range("A2:A7") as shown in the above screenshot.
- Test the program.
Dim Full_Name As String, Comma_Position As Integer, i As Integer
The problem we are dealing With Is that we need To tell Excel VBA from where
we want To separate the string. In Case of Smith, Mike the
comma is at position 6 While in Case of
Williams, Janet the comma is at position 9.
For i = 2 To 7
Full_Name = Cells(i, 1).Value
Comma_Position = InStr(Full_Name, ",")
Note: Currently this code is working from Row No. 2 to 7. You can modify it as per your requirement.
Cells(i, 2).Value = Mid(Full_Name, Comma_Position + 2)
Cells(i, 3).Value = Left(Full_Name, Comma_Position - 1)
Mid(Full_Name, Comma_Position + 2) means we want the part of Full Name starting
at character 'Comma_Position + 2' (this is exactly the first name).Left(Full_Name, Comma_Position - 1) means we want the part of Full Name starting at the beginning until character 'Comma_Position - 1' (this is exactly the last name).
Next i
Sub Separate_Strings()
Dim Full_Name As String, Comma_Position As Integer, i As Integer
For i = 2 To 7 'You can modify it as per your requirement.
Full_Name = Cells(i, 1).Value
Comma_Position = InStr(Full_Name, ",")
Cells(i, 2).Value = Mid(Full_Name, Comma_Position + 2)
Cells(i, 3).Value = Left(Full_Name, Comma_Position - 1)
Next i
End Sub
Result:
No comments:
Post a Comment