2016-11-17 1 views
2

Всякий раз, когда я запускаю определенный макрос отчета в Excel, я не могу использовать Copy и Paste в другом месте. Например, скажем, что я запускаю отчет (в зависимости от того, сколько строк может занимать 30 + минут), а затем перейдите в другое место, а его работа в фоновом режиме не позволяет мне копировать и вставлять. Единственное, что он вставляет, - это то, над чем сейчас работает макрос, и если я попытаюсь скопировать что-то, то оно будет вставлено в следующую ячейку в отчете, сообщающем этот отчет.Не могу использовать Копировать и вставить, когда у меня есть и Excel VBA Macro Running

Ищет любой совет или если кто-либо еще слышал об этом.

Спасибо.

+1

Является ли отчет явным образом полагаться на буфер обмена, случайно? –

+0

Да он использует Range («A1»). Выберите Selection.Copy Range («B1»). Выберите ActiveSheet.paste – Landers

ответ

2

Вам еще нужно скопировать/вставить? Возможно, под одеялом VBA является на самом деле не копировать/вставить, за се, но если вам нужно только значения, почему нет:

Range("B1").Value = Range("A1").Value 

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

Range("B1:B100").Value = Range("A1:A100").Value 

Это не будет копировать форматы и такие, но вы можете добавить их, а также:

Range("A1").NumberFormat = Range("B1").NumberFormat 

Это не может быть столь же аккуратно, код-мудры, как, что вы ищете с копирования/вставки, но я бы посоветовал вам сравнить его и увидеть ch более эффективен. Опять же, возможно, это все равно под капотом; Я действительно не знаю.

+0

Сладкие Рад, что вы дайте мне знать, я буду стараться и Петля какой-то, но теперь что я знаю, что вы можете делать диапазоны, все это Gravy! Спасибо, Hambone! – Landers

0

С помощью:

Range("A1").Select 
Selection.Copy 
Range("B1").Select 
Selection.Paste 

Я использовал свой активный Clipboard Ergo, почему я не мог копировать и вставлять, изменяя его:

Range("A1?).Copy Destination:=Range("B1?) 

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

Смежные вопросы