Список методов VBA, которые уничтожают буфер обмена - PullRequest
0 голосов
/ 28 сентября 2019

Насколько я знаю, это довольно раздражающий факт (особенность?), Что некоторые методы / свойства VBA, например, Range.Clear, уничтожают содержимое буфера обмена.Это часто расстраивает пользователей, которые даже не подозревают, что вы выполняете некоторый «скрытый» код VBA, например, при активации рабочих листов.

Мне известны рабочие области OpenClipboard/CloseClipboard или DataObject (как, например, обсуждается в Сохранение содержимого буфера обмена во время выполнения кода , но у меня возникло несколько недостатков (ссылки передаются натекст, вообще не работает для операций вырезания / вставки и т. д.).

У меня есть рабочее решение (готовое поделиться) для копирования / вставки (сохранение содержимого буфера обмена путем вставки на скрытый лист со смещением, чтобы избежатьссылки, чтобы получить недействительный, сохранить вставленный адрес диапазона - запустить ваш код - восстановить буфер обмена, скопировав сохраненный диапазон.) Мне не удалось найти решение, которое в достаточной степени обрабатывает вырезание / вставку.

Мой вопрос был бы, если кто-нибудьзнает о документации или имеет (даже неполный) список нарушающих методов / свойств, как, например, все варианты Clear, установка Application.Calculation, которые уничтожают буфер обмена и, таким образом, следует по возможности избегать.

...