In this post, we are glad to show you the way to batch change the order of first and last name in a list in Word document.
An English name includes the first name, middle name, and last name. And it is written in the very same order. As a result of globalization, people from different regions of culture now exchange with one another more often than at any time. Consequently, there are a lot international conferences nowadays. And names in other language tend to have a different order. Therefore, there are times when you need to change the order of first and last name in a list. The point is how we can do it in batch.
Actually, you can accomplish this in Word with the help of a macro. Follow our instructions bellow.
Change the Order of First Name and Last Name in a List
- First and foremost, create a 2-column table of multiple rows in Word.
- In the first column, enter names that need to change the sequence. Be careful not to enter any space after names.
- Leave the second column blank.
- After this, click “Developer” tab and click “Visual Basic” to trigger the VBA editor. If the “Developer” tab is not available, press “Alt+ F11” instead.
- Now create a new module by clicking “Normal” in the left column.
- Then click “Insert” tab and choose “Module” on its drop-down menu.
- Next double click new module to open it.
- And paste the following codes there:
Sub ExchangeNameOrder() Dim strOriginalName As String, strNewName As String Dim aryOriginalName() As String Dim nIndex As Integer Dim objTable As Table Dim objOriginalName As Cell Dim objOriginalNameRange As Range Dim objExchangedNameRange As Range Dim nRowNumber As Integer Set objTable = ActiveDocument.Tables(1) nRowNumber = 1 ' Traversing the names in column 1 For Each objOriginalName In objTable.Columns(1).Cells Set objOriginalNameRange = objOriginalName.Range objOriginalNameRange.MoveEnd Unit:=wdCharacter, Count:=-1 Set objExchangedNameRange = objTable.Cell(i, 2).Range objExchangedNameRange.MoveEnd Unit:=wdCharacter, Count:=-1 strOriginalName = objOriginalNameRange.Text aryOriginalName() = Split(strOriginalName, " ") ' Exchange the order of first name and last name, and put the new name in column 2. If UBound(aryOriginalName) > 0 Then strNewName = aryOriginalName(UBound(aryOriginalName)) For nIndex = 1 To UBound(aryOriginalName) - 1 strNewName = strNewName & " " & aryOriginalName(nIndex) Next nIndex strNewName = strNewName & " " & aryOriginalName(0) objExchangedNameRange.InsertAfter (strNewName) Else objExchangedNameRange.InsertAfter (strOriginalName) End If nRowNumber = nRowNumber + 1 Next objOriginalName MsgBox ("The first name and last name have been exchanged the order in column2.") End Sub
- Lastly, click “Run”.
Now you will receive a message box, informing you the exchange has been completed. You can see names in new order in the second column. Check the result bellow:
Your Last Hope of Retrieving Data Back
Inevitably, we would run into Word issues now and then. As sad as it sounds, it’s also very true. But, you need keep in mind that whenever a collapse occurs in Word, there are always things we can do. First try the built-in tool for corrupt word. If it should not help, which is quite the case all the time, you can anchor your hope in an advanced repairing product.
Vera Chen is a data recovery expert in DataNumen, Inc., which is the world leader in data recovery technologies, including recover xlsx and pdf repair software products. For more information visit www.datanumen.com