У меня есть следующий макет рабочего листа
Теперь я пытаюсь создать копиюдокумента и оставьте только два листа Chase_list
и Summary
(однако мне нужно изменить расширение файла с .xlsm на .xlsx, чтобы я не мог использоватьSaveCopyAs
метод)
Я попытался сделать это с помощью следующего кода (также первая строка работает правильно, не беспокойтесь об этом, переменные уже определены, фактическое удаление рабочей таблицы выполняетвред )
ThisWorkbook.SaveAs new_name & "_end_week_" & current_week - 1, 51, _
accessMode:=xlExclusive
Sheets("Chase_list").Cells.Copy
Sheets("Chase_list").Cells.PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
Application.DisplayAlerts = False
Sheets("Instructions").Delete
Sheets("03_000002").Delete
Sheets("Additions").Delete
Sheets("Data").Delete
Sheets("Control Panel").Delete
Application.DisplayAlerts = True
В основном то, что он делает, мы сначала вставляем данные в chase_list в качестве значений (поскольку они связаны с другими удаляемыми листами), и как только мы это делаем, мы начинаем удалятьлисты во вновь сохраненном файле .xlsx (может быть, тот факт, что он больше не является .xlsm, может принести какой-то вред?)
Кажется, что рабочие листы удаляются так:
К сожалению, я тогда представлен сследующая ошибка
Есть идеи, что я здесь не так делаю?
Примечание.код, похоже, вылетает на последней / предыдущей строке кода