Да, но когда мы просто закрываем файл, система спрашивает сохранять изменения или нет и если да, то не спрашивает куда, а сохраняет в исходную. Значит знает. Вот и думал использовать это.
Еще вот это нашел. Заинтересовала строчка
strPath = ishWB.Path ' определяем путь к папке из которой запущен файл . Может как-то можно прикрутить к первому макросу?
Я не силен в макросах. Помогите пожалуйста.
Просто нужно чтобы при закрытии файла он сохранялся под именем содержимого определенной ячейки в исходную директорию.
Код |
---|
Sub Backup_Workbook()
Dim ishWB As Workbook
Dim newWB As Workbook
Dim x As String, strPath As String, FileNameXls As String 'переменные пути и имени файла
Dim strFirma As String, strDate As String
Dim iNum As Integer
Set ishWB = ThisWorkbook 'книга из которой запущен макрос
Set newWB = Workbooks.Add 'новая книга
ishWB.Sheets("Экспорт").Copy Before:=newWB.Sheets(1) 'копируем лист отчета в новую книгу
iNum = Val(Application.Version) 'проверка версии Ехс
'указываем путь (папку) для сохранения файла
strPath = "F:\DownLoad\тест"
'strPath = "C:\Оперативный анализ\Экспорт"
'если нужно сохранить в ту же папку что и исходный файл с макросом
' =========================
strPath = ishWB.Path ' определяем путь к папке из которой запущен файл
' =========================
'обработка ошибки
On Error Resume Next
x = GetAttr(strPath) And 0
If Err = 0 Then ' если путь существует - сохраняем копию книги
strDate = Format([c1], "mmmm yyyy") 'преобразуем дату в текст
'сосчитываем имя фирмы из ячейки
strFirma = [d1].Text 'записали значение в переменную
'удаляем кавычки - они запрещены в имени файла
strFirma = Trim(Replace(strFirma, """", ""))
strFirma = Replace(strFirma, Chr(171), "")
strFirma = Trim(Replace(strFirma, Chr(187), ""))
'формируем полный путь и имя файла для сохранения
FileNameXls = strPath & "\" & "Отчёт " & strFirma & " " & strDate & ".xlsb"
'сохраняем книгу
ActiveWorkbook.SaveAs Filename:=FileNameXls, FileFormat:= _
xlExcel12, CreateBackup:=False
Else 'если путь не существует - выводим сообщение
MsgBox "Папка " & strPath & " недоступна или не существует!", vbCritical
End If
End Sub |