Всем доброго времени. Имеется файл в котором ведется журнал работ. Файл должен храниться доступно на сетевом диске, но т.к. временами случаются сбои сети, веду файл на локальном диске с последующим копированием на сетевой. Обновлять файл приходится часто, поэтому решил облегчить себе жизнь - делать это макросом. Но народ на работе пугливый, макросов боится, поэтому в доступе желательно хранить файл как обычную таблицу xlsx. Посмотрел образцы в приемах и на https://www.excel-vba.ru/ . На их основе наваял. Всё получилось, работает, но некоторые моменты не нравятся. Если использовать ActiveWorkbook.SaveAs то после выполнения кода активной становится книга-копия для всех, и если файл не закрыть, то последующие изменения вносятся в неё, а не в исходный файл, и могут элементарно не сохраниться при перезаписаны исходным файлом, т.е. надо следить за тем, какой файл правишь.
Код
Sub Backup()
iPath$ = "z:\eee\hhhh\jjjj\"
iFileName$ = ActiveWorkbook.Name
ActiveWorkbook.Save
iFileName$ = Left(iFileName$, Len(iFileName$) - 4) & "xlsx"
ActiveWorkbook.SaveAs Filename:= _
iPath$ & iFileName$, FileFormat:= _
xlOpenXMLWorkbook, CreateBackup:=False
End Sub
При использовании ActiveWorkbook.SaveCopyAs, вроде бы все происходит как надо, но при попытке открыть файл-копию выдается сообщение об ошибке, что расширение не соответствует типу файла, и не открывается.
Код
Sub Backup_Active_Workbook()
Dim x As String
strPath = "z:\eee\hhhh\jjjj" 'папка для сохранения резервной копии
On Error Resume Next
x = GetAttr(strPath) And 0
If Err = 0 Then ' если путь существует - сохраняем копию книги, добавляя дату-время
FileNameXls = strPath & "\" & "AAAA" & ".xlsx"
ActiveWorkbook.SaveCopyAs Filename:=FileNameXls
Else 'если путь не существует - выводим сообщение
MsgBox "Папка " & strPath & " недоступна или не существует!", vbCritical
End If
End Sub
Что можно сделать со всем этим? Хотелось бы чтоб работало так: вносятся правки в исходный файл, запускается код создающий копию в формате xlsx; вносятся новые правки и, дальше по накатанной.