Как я могу запустить универсальную функцию вставки значений с 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
)?