Option Explicit
Sub test()
Dim i As Long
For i = 2 To Sheet1.Range("A1000000").End(xlUp).Row
Sheet1.Cells(i, 2) = GetStr(Sheet1.Cells(i, 1).Value, "^.*[a-zA-Z](?=\d)")
Sheet1.Cells(i, 3) = GetStr(Sheet1.Cells(i, 1).Value, "\d{3}[A-Z]+$")
Next
End Sub
Function GetStr(str As String, pattern As String) As String
Dim reg As Object, mc
Set reg = CreateObject("VBScript.RegExp")
reg.pattern = pattern
Set mc = reg.Execute(str)
If mc.Count > 0 Then
GetStr = mc.Item(0).Value
Else
GetStr = ""
End If
End Function