Страницы: 1
RSS
Вставка значениями с помощью VBA
 
Добрый день, товарищи. Помогите, пожалуйста. С вба я дружу не очень хорошо, только начинаю немного изучать. Суть в том, что я написал код для автоматического копирования данных с одного листа на другой . Нужно, чтобы все ячейки вставились значениями, но работает только функция Paste.

Пробовал PasteSpecial Paste:=xlPasteValues, не работает, выдаёт ошибку. А если я просто беру копирую часть ячеек иначе (Range(...).Copy и т.д., тогда значениями вставляется..)

Подскажите, в чём дело. Переписывать по-другому макрос не хочу, потому что практически не умею и на это уйдёт много времени, ибо на этот код убил массу времени

Код
Sub abc()
Workbooks("111.xlsm").Activate
Application.Calculation = xlManual
Worksheets("Лист1").Activate
   Range(Cells(3, 1), Cells(1000000, 21)).ClearContents
Worksheets("выгрузка").Activate
vvv = Worksheets("Лист1").Cells(Worksheets("Лист1").Rows.Count, 1).End(xlUp).Row + 1 
ppp = Worksheets("выгрузка").Cells(Worksheets("выгрузка").Rows.Count, 1).End(xlUp).Row 
        Worksheets("111.xlsm").Range("a2:q" & ppp).Copy
        Worksheets("Лист1").Activate
        Worksheets("Лист1").Range("A" & vvv).Select
        ActiveSheet.Paste
        
Application.Calculation = xlAutomatic

End Sub
Изменено: olom - 23.01.2017 13:45:30
 
Два варианта:
1. Приравнивать диапазоны: Диапазон.value на первом листе = диапазону.value на втором листе.
2. После копирования, на листе, куда скопировали, формулы превратить в значение: выполнить строку Диапазон.value = Диапазон.value  
 
А попробуйте:
Код
        Worksheets("111.xlsm").Range("a2:q" & ppp).Copy
        Worksheets("Лист1").Range("A" & vvv).PasteSpecial xlPasteValues
И читаем справочку по методу:
Скрытый текст
Т.е. метод PasteSpecial для листа не предусматривает копирования значений, вот и все дела :(
Ах да, Worksheets("111.xlsm") - это ахинея. У Вас есть лист с таким именем?
Изменено: kuklp - 23.01.2017 18:30:21
Я сам - дурнее всякого примера! ...
 
Юрий М, честно говоря, не совсем понял, но попробую, спасибо
 
kuklp, нет, листы называются по-другому, сюда просто такие названия вставил
Спасибо за совет, завтра обязательно попробую

p.s. я там перепутал worksheets с workbook) в исходнике у меня другие названия
Изменено: olom - 23.01.2017 21:20:48
 
kuklp, большое спасибо, получилось
Страницы: 1
Наверх