Вставить значения из буфера обмена Windows в VBA - PullRequest
1 голос
/ 10 марта 2019

Как я могу запустить универсальную функцию вставки значений с VBA, которая будет работать для вставки данных из буфера обмена Windows? Чтобы быть более точным:

У меня есть диапазон A1 в качестве вспомогательного диапазона и A2, где я хочу отобразить результат. Проблема с фрагментом кода:

Range("A2").PasteSpecial xlPasteValues

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

PasteSpecial method of Range class failed

Фрагмент альтернативного кода:

Range("A1").Activate
ActiveSheet.Paste
Range("A2").Value = Range("A1").Value

Это будет использовать A1 в качестве вспомогательного диапазона, так что формат Range A2 не будет разрушен.

У меня здесь другая проблема. Я часто копирую значения, начинающиеся с 0, и даже если у меня есть диапазон A1, отформатированный как текст, который принимает значения, начинающиеся с 0, обычная функция Paste перезаписывает это форматирование и автоматически удаляет 0 с начала (например, поворот 0123 на 123).

xlPasteValues этого не делает, но, по-видимому, несовместимо с копиями, отличными от Excel.

Есть ли способ преодолеть это (оставить 0 в начале в A1, но также избегать любых обновлений форматирования в A2)?

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