@PKatona, когда я попробовал его в реальной настройке, он перезаписал некоторые файлы. Изучив код, я понял, что он подсчитывает количество файлов в каталоге и сохраняет в качестве следующего номера (например, 15-й файл в папке как «ST14 TC15») вместо сохранения в качестве наивысшего следующего числа в именах файлов (например, есть только 3 файла в каталоге и один с наивысшим окончанием - «ST14 TC06», поэтому следующий файл должен быть сохранен как «ST14 TC07». Надеюсь, это имеет смысл. Но, используя некоторый код, я смог придумать это: однако 1) должен быть способ сократить его! 2) он работает в Excel (где я это сделал), но строка «Evaluate» в конце дает ошибку «Sub или function not defined» в Word!Сохранение документа MS Word с последовательной нумерацией
Еще раз спасибо
`Sub Largest()
Dim rng As Range
Dim dblMax As Double
Dim var_data(200)
Dim var_numdata(200)
'* - * - *
'to put filenames in a specific directory into an array
Dim MyFile As String
Dim Counter As Long
'Create a dynamic array variable, and then declare its initial size
Dim DirectoryListArray() As String
ReDim DirectoryListArray(1000)
Dim str()
ReDim str(1000)
Dim num()
ReDim num(1000)
'Loop through all the files in the directory by using Dir$ function
MyFile = Dir$("C:\HAPPY\SANTA\ELVES\*.docx")
Do While MyFile <> ""
DirectoryListArray(Counter) = MyFile
MyFile = Dir$
str(Counter) = Mid(DirectoryListArray(Counter), 8, 3)
num(Counter) = Evaluate(str(Counter))
Counter = Counter + 1
Loop
'Reset the size of the array without losing its values
ReDim Preserve DirectoryListArray(Counter - 1)
ReDim Preserve str(Counter - 1)
ReDim Preserve num(Counter - 1)
dblMax = Application.WorksheetFunction.Max(num())
Dim nextFilename As String
nextFilename = "C:\HAPPY\SANTA\ELVES\ST14 HP" + Format((dblMax + 1), "000")+ ".docx"
ActiveDocument.SaveAs Filename:=nextFilename
ActiveDocument.Close
End Sub
В 1000 спасибо вам в @PKatona, он работал как шарм. – Fusion53
Добро пожаловать. Обязательно сделайте это как ответ, – PKatona