Как добавить копию листа в другую книгу, не открывая книгу - PullRequest
0 голосов
/ 19 июня 2019

Я устанавливаю код, который скопирует последний лист в другую книгу и добавит его в конец этой книги.Однако я не хочу, чтобы мой код открывал книгу.

Я пытался использовать приложение. Обновление экрана до и после моего кода, но, похоже, оно не работает.Я также попытался поместить код обновления экрана в начало подпункта и в конец.

With otherwb
   Application.ScreenUpdating = False
   .Sheets(.Sheets.count).Copy After:=.Sheets(.Sheets.count)
   Application.ScreenUpdating = True
End With

Использую ли я код обновления экрана неправильно или по какой-то причине книга все еще открывается для меня?

1 Ответ

0 голосов
/ 19 июня 2019

Этого нельзя достичь в VBA, не открывая файл.

Но вы можете создать объект Application с настройками его видимости в false, чтобы пользователь не заметил, как работает этот экземпляр:

Dim app as Excel.Application 
app.Visible = false 
'do stuff

Почему ScreenUpdating не работает ... Вы останавливаете обновление экрана для экземпляра приложения, из которого запускается код.Не для экземпляра приложения, который вы хотите создать (для невидимого запуска в фоновом режиме).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...