VBA - Rearrange Indian Names In Order

Excel VBA Code to arrange Indian Names.

Use Case:

Turn:
K Sunil Agarwal
Mukesh D Ambani

Into:
Sunil Agarwal K
Mukesh Ambani D

Function MoveToEnd(text As String) As String Dim arr() As String Dim i As Long, j As Long, k As Long Dim nonShortWords() As String, shortWords() As String arr = Split(text, " ") j = UBound(arr) k = 0 ReDim nonShortWords(k To j) ReDim shortWords(k To j) For i = 0 To j If Len(arr(i)) <= 2 Then shortWords(k) = arr(i) k = k + 1 Else nonShortWords(i - k) = arr(i) End If Next i MoveToEnd = Join(nonShortWords) & " " & Join(shortWords) End Function Function UppercaseShortWords(text As String) As String Dim arr() As String Dim i As Long, j As Long arr = Split(text, " ") j = UBound(arr) For i = 0 To j If Len(arr(i)) <= 2 Then arr(i) = UCase(arr(i)) End If Next i UppercaseShortWords = Join(arr, " ") End Function ' Final Excel cell formula to use: =PROPER(UppercaseShortWords(TRIM(MoveToEnd(A1))))