Как сохранить мою книгу, но не по пути .xlsb?

#excel #vba #xlsb

Вопрос:

У меня есть макрос, который создает резервную копию. Я хочу, чтобы макрос был доступен для всей моей книги, поэтому я поместил его в свой личный файл.xlsb. Но резервная копия сохраняется по пути .xlsb, а не по пути книги, над которой я на самом деле работаю… Может быть, все дело в Приложении.Эта рабочая тетрадь.код пути

 Sub Backup() 'makes backup    Dim MyDate  MyDate = Date  Dim myTime  myTime = Time  Dim TestStr As String  TestStr = Format(myTime, "hh.mm.ss")  Dim Test1Str As String  Test1Str = Format(MyDate, "DD-MM-YYYY")  Dim strFolderName As String  Dim strFolderExists As String  Dim path As String   'the problem must be in the code below  path = Application.ThisWorkbook.path  strFolderName = path amp; "Backup"  strFolderExists = Dir(strFolderName, vbDirectory)  Debug.Print path  Application.DisplayAlerts = False   If strFolderExists = "" Then    MkDir strFolderName  path = strFolderName amp; Test1Str amp; "_" amp; TestStr amp; "_" amp; ActiveWorkbook.Name    Else    path = strFolderName amp; Test1Str amp; "_" amp; TestStr amp; "_" amp; ActiveWorkbook.Name    End If   ActiveWorkbook.SaveCopyAs Filename:=path  Application.DisplayAlerts = True   End Sub  

Комментарии:

1. Да, вы правы. Вы сохраняете ActiveWorkbook , но используете ThisWorkbook.Path . Вы должны использовать ActiveWorkbook.Path

2. Примечание: эта строка path = strFolderName amp; Test1Str amp; "_" amp; TestStr amp; "_" amp; ActiveWorkbook.Name отображается в обеих ветвях заявления If. Вместо этого эту строку можно было бы переместить за пределы оператора If, и Else ветвь можно было бы удалить.

3. Спасибо @Toddleson, вот и все! Работает отлично!