Так всегда работал SaveAs.Единственный способ обойти это - скопировать лист и сделать SaveAs на копии, а затем закрыть ее.
РЕДАКТИРОВАТЬ: Я должен добавить пример, поскольку это не так сложно сделать,Вот быстрый пример, который копирует ActiveSheet
в новую рабочую книгу.
Dim wbk As Workbook
Set wbk = Workbooks.Add
ActiveSheet.Copy wbk.Sheets(1) ' Copy activesheet before the first sheet of wbk
wbk.SaveAs ....
wbk.Close
Сложная рабочая книга может вызвать проблемы со ссылками и макросами, но в обычных сценариях это безопасно.
РЕДАКТИРОВАТЬ 2: Я знаю, что вы пытаетесь сделать, так как ваш другой вопрос был о попытке запуска экспорта при каждом изменении листа.Этот подход к копированию, представленный здесь, вероятно, будет очень разрушительным.
Я предлагаю написать CSV-файл вручную, чтобы минимизировать прерывания графического интерфейса.Лист может стать непригодным для использования, если сохранение происходит с высокой частотой.Я бы не стал винить в этом дверь Excel, просто она не была создана для быстрого сохранения за кулисами.