Есть небольшие взломы, потому что уже поздно и я устал, но это работает. При необходимости измените имя листа и таблицы.
Option Explicit
Sub fillNext()
Dim myTable As ListObject
Set myTable = Worksheets("Sheet1").ListObjects("Table1")
Dim myColumn As ListColumn
Set myColumn = myTable.ListColumns("UID")
With myColumn.DataBodyRange
Dim order As String
order = .Cells(.Rows.Count, 1)
order = Mid(order, InStr(InStr(order, "-") + 1, order, "-") + 1, 255)
myTable.ListRows.Add
.Cells(.Rows.Count + 1, 1).Value = "ID-YEAR-" & Format(CStr(CLng(order) + 1), "000")
End With
End Sub