Excel vba очистить буфер обмена

Excel vba очистить буфер обмена

28386 просмотра

5 ответа

2223 Репутация автора

Как бы вы очистили буфер обмена Microsoft Office, используя VBA, в частности Word VBA?

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

Ответы (5)

8 плюса

2223 Репутация автора

Видел это в другом посте, и я проверил это с Word VBA.

Просто скопируйте и вставьте в свой код все, что вам нужно, чтобы очистить буфер обмена.

Еще одна вещь, которую я заметил, это то, что когда я .Quit пишу программу, скажем, Excel, она постоянно спрашивает меня, хочу ли я сохранить данные — это буфер обмена. Обходной путь — очистить буфер обмена, используя вышеуказанный код. Увидеть ниже:

Я использовал приведенный выше пример в коде VBA для импорта данных из файла Excel. Смотри здесь

1 плюс

743 Репутация автора

Эта функциональность хранится в библиотеке «Библиотека объектов Microsoft Forms 2.0». Для ссылки на эту библиотеку перейдите в редактор VBA, затем Инструменты, Ссылки и выберите ее из списка, если она еще не отмечена.

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

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

10 плюса

183 Репутация автора

работать в вашей ситуации, или этот вариант не подходит?

1 плюс

1111 Репутация автора

Вот решение, которое сработало для меня. Это основано на сообщении Зака ​​Барресса на VBAexpress.com :

После копирования этой функции в проект VBA используйте ее ClearClipboard для очистки.

Читайте также:  Geforce gt 240 сравнение

Автор: ChrisB Размещён: 14.11.2017 02:31

плюса

6 Репутация автора

Извините, но на самом деле никто не обратился к первоначальному вопросу, а именно, как очистить буфер обмена Office . Весь приведенный выше код и ответы относятся к буферу обмена Windows . Я надеюсь, для всех очевидно, что следует избегать буфера обмена Windows любой ценой, потому что для всех Windows существует только один, он может содержать только один элемент за раз, и поэтому он действительно принадлежит пользователю, который должен иметь возможность используйте его во время многозадачности во время выполнения кода.

Для справки: буфер обмена Office, который может содержать 24 элемента, отображается путем перехода на ленту «Домой» и щелчка по маленькой стрелке, указывающей на юго-восток, рядом со словом «Буфер обмена», которое является названием первой группы ленты, которое включает в себя инструменты Paste, Cut, Copy и Format Painter.

Итак, еще раз, вопрос в том, как в VBA вы очищаете буфер обмена Office ? В общем, как вы управляете буфером обмена Office, не касаясь буфера обмена Windows вообще?

У меня есть сценарий, который форматирование Raw Data и добавляет его в конец книги анализа у меня открыт. Скрипт запускается из анализа книги как RAW данные заполняются каждый раз.

Скрипт работает отлично, за одним исключением, я не в состоянии очистить буфер обмена на другой книге, и я подозреваю, что это из-за его открыть в другом случае (Application) в Excel.

Я думал, что обойти проблему, закрыв книгу RAW Data (я хочу сделать это в любом случае), но я получаю приглашение, так как данные буфера обмена довольно велика, так это тоже не работает.

Читайте также:  Ayfon 6 muzikasi skachat

Что я могу сделать, это просто скопировать любую пустую ячейку в моем ActiveWorkbook когда я приклеила значение, которые я скопировал ранее и мне не нужно их больше — и это заменяет большие объемы данных в буфере обмена с пустой строкой (сравнительно ничего) и позволяет мне закрыть книгу, когда мне нужно.

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

Другое решение

То , что вы должны попробовать, чтобы получить MSForms DataObject и попытаться поместить его в буфер обмена

а затем снимите его следующим образом:

И если это не работает, вы всегда можете установить текст из буфера обмена в пустой

Когда в буфере обмена собирается слишком много элементов, он может переполниться. В таком случае появляется сообщение об ошибке. Вот как можно очистить буфер обмена.

Чтобы удалить все фрагменты или только некоторые из них, сначала откройте область задач Буфер обмена.

На вкладке Главная в группе Буфер обмена нажмите кнопку вызова диалогового окна Буфер обмена.

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

Чтобы очистить весь буфер обмена, нажмите кнопку Очистить все.

Чтобы удалить отдельный фрагмент, щелкните стрелку справа от него и нажмите кнопку Удалить.

Ссылка на основную публикацию
Adblock detector