Я хочу:
- Обработать данные с помощью рабочей книги Template
- Сохраните копию этой рабочей книги как .xlsx(SaveCopyAs не позволяет изменять типы файлов, иначе это было бы здорово)
- Продолжить показ оригинального шаблона (а не "сохраненного как" )
Использование SaveAs
делает именно то, что ожидается - это экономит рабочую книгу при удалении макросов и представляет мне представление о недавно созданной книге SavedAs.
К сожалению, это означает:
- Я больше не просматриваю свою рабочую книгу с включенным макросом, если я не открываю ее повторно
- Выполнение кода останавливается в этот момент, потому что
- Любые изменения макросов отбрасываются, если я забыл сохранить (примечание: для производственной среды это нормально, но для развития это огромная боль)
Есть ли способ сделать это?
'current code
Application.DisplayAlerts = False
templateWb.SaveAs FileName:=savePath, FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
templateWb.Activate
Application.DisplayAlerts = True
'I don't really want to make something like this work (this fails, anyways)
Dim myTempStr As String
myTempStr = ThisWorkbook.Path & "\" & ThisWorkbook.Name
ThisWorkbook.Save
templateWb.SaveAs FileName:=savePath, FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
ActiveWorkbook.Close
Workbooks.Open (myTempStr)
'I want to do something like:
templateWb.SaveCopyAs FileName:=savePath, FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False 'SaveCopyAs only takes one argument, that being FileName
Также обратите внимание, что в то время как SaveCopyAs
позволит мне сохранить его как другой тип (т.е. templateWb.SaveCopyAs FileName:="myXlsx.xlsx"
), это приводит к ошибке при его открытии, поскольку теперь он имеет недопустимый формат файла.