Я пытаюсь написать небольшой скрипт, который сохранит файл, над которым я работаю, и при этом увеличивая число версий на нем. У меня есть сценарий, который отлично работает, когда я вызываю его из обычного Sub
, но как только я положил его на событие BeforeSave
, все приложение сработает.Версия Сохранение файла Excel
Я разместил это в ThisWorkbook
Объект книги, который я хочу в версии.
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim fso
Dim nme As String, rootDir As String
Dim ver As Integer
Set fso = CreateObject("Scripting.FileSystemObject")
With ThisWorkbook
nme = fso.GetBaseName(.Name)
rootDir = fso.getfolder(.Path)
On Error Resume Next
ver = CInt(Trim(Right(nme, Len(nme) - InStr(1, nme, " v", vbTextCompare) - 1))) + 1
On Error GoTo 0
nme = "GNOC into CPT DE" ' Trim(Left(nme, InStr(1, nme, " v", vbTextCompare)))
.SaveAs Filename:=rootDir & "\" & nme & " v" & Format(ver, "000"), FileFormat:=xlOpenXMLWorkbookMacroEnabled
End With
End Sub
Вероятно потому, что вы экономите в два раза? Почему вы не можете просто «wb.saveas filename: = blah blah» в суб? – findwindow