1

У меня есть макрос, который копирует 4 листа из одной рабочей книги в новую рабочую книгу и сохраняет ее под другим именем.

К сожалению, окно сообщения, спрашивающее меня, хочу ли я сделать этот большой объем данных доступным для других приложений, приводит к тому, что это автоматизированное задание становится слегка ручным.

Будем благодарны за любые советы о том, как избежать окна сообщения в буфере обмена или просто автоматически ответить «Нет».

4 ответа4

4

Я бы изменил макрос. Отключите оповещения при запуске макроса и включите их снова, когда макрос будет готов. т.е. Application.DisplayAlerts = False

4

Проблема с Application.DisplayAlerts = False означает, что он может скрывать предупреждение, которое вам нужно увидеть.

Используйте Application.CutCopyMode = False после вставки, которая удаляет ссылку на большой диапазон из буфера обмена.

1

Я нашел этот документ MS относительно этого. Похоже, вы можете использовать несколько различных программных решений в вашем макросе, чтобы решить эту проблему. Это зависит только от того, что именно вы копируете в буфер обмена.КБ № 287392

1

Я согласен с Джоном Пельтье: «Проблема с приложением.DisplayAlerts = False в том, что он может скрывать предупреждение, которое вам нужно увидеть. "Плюс вы должны помнить" Приложение.DisplayAlerts = True "после того, как вы закончите, так что это 3 строки кода для каждой вставки И, если ваша программа прерывает ДО" приложения.DisplayAlerts = True ", вы будете неосознанно отключать оповещения, пока не выйдете из Excel.

Я проверил его предложение «Применение.CutCopyMode = False после вставки ", он отлично работает в someSpreadsheet.xls

Workbooks.OpenText Filename:="someDirectory\someFile.txt", _
    DataType:=xlDelimited, TextQualifier:=xlNone, _
    Tab:=True
Cells.Select
Selection.Copy
Windows("someSpreadsheet.xls").Activate
ActiveSheet.Paste
Application.CutCopyMode = 0
Windows("someFile.txt").Activate
ActiveWorkbook.Close

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .