In a standard Module
Option Explicit
Dim mPath As String
Dim mNameNumber As String
Public Function NameNumber() As String
If mNameNumber = "" Then mNameNumber = "001"
NameNumber = mNameNumber
mNameNumber = Format(CLng(mNameNumber) + 1, "000")
End Function
Modify your code like this
Sub t()
Dim newfilename
If mPath = "" Then
newfilename = Application.GetSaveAsFilename(InitialFileName:="xyz" & NameNumber & ".xlsx", FileFilter:="Excel Workbook (*.xlsx), *.xlsx", Title:="Save As")
mPath = Left(newfilename, Len(newfilename) - InStrRev(newfilename, "\"))
Else
newfilename = Application.GetSaveAsFilename(InitialFileName:=mPath & "xyz" & NameNumber & ".xlsx", FileFilter:="Excel Workbook (*.xlsx), *.xlsx", Title:="Save As")
End If
End Sub