2016-08-18 3 views
-1

Я хотел бы скопировать несколько строк из одного листа в другой, у меня есть данные, начинающиеся с одного листа в строке A2 и заканчивающиеся на A108850 и начинающиеся с столбца A2 и заканчивается на столбце I2, как я могу скопировать все эти данные в другой рабочий лист, где начинается строка с A4, а столбец начинается с A4 и заканчивается на I4.Excel: Скопируйте и вставьте несколько строк и столбцов с одного листа на другой

Как я мог сделать это через некоторые макросы ?.

Спасибо.

+0

Что вы пробовали до сих пор? SO не является службой записи кода. см. [Как задать хороший вопрос] (http://stackoverflow.com/help/how-to-ask). кроме того, я предлагаю вам попробовать макрозаписывающее устройство и сделать то, что вы только что описали вручную, тогда у вас есть код для этого: – DragonSamu

+0

Я бы никогда не использовал макрорекордер для создания макросов из-за плохой производительности. Использование правильного кода сделает макрос на сотни или тысячи (?) Раз быстрее. –

+0

@ ErikBlomgren Я бы тоже не хотел, но OP не предоставлял никакого кода. Таким образом, запуск на макрозаписывающем устройстве или попытка кода что-то является первым запуском, не предоставляющим OP с anwser – DragonSamu

ответ

1

Попробуйте эту

Worksheets("Sheet1").Range("A2:I108850").Copy Worksheets("Sheet2").Range("A4") 

Измените ссылку на диапазон и имя рабочего листа соответственно.

1

Copy & Paste является «дорогой» операция, тем больше диапазон, тем дороже операция

Если вы заинтересованы в только значения, вы можете попробовать это:

Worksheets("DestinationSheetName").Range("A2:I108850").Value = Worksheets("SourceSheetName").Range("A2:I108850").Value 

отредактировал после комментария OP

Если код в вашем последнем комментарии имеет одинаковую цель только вставки значений, затем измените второй оператор на следующее:

With Worksheets("Sheet1").Range("A2:I108850") '<--| reference the "source" range you want to paste values from 
     .Range("A4").Resize(.Rows.Count, .Columns.Count).Value = .Value '<--| resize "destination" range accordingly to "source" one and paste values into it 
    End With 

, конечно, вы должны проверить имена листов, чтобы быть действительными те, в настоящее время активной книги

+0

Должен ли я создать макрос или попробовать сценарий в Microsoft VB Module? – DevanDevak

+0

Этот фрагмент кода должен быть помещен в «Подпрограмму», которую вы можете записать в модуле VBA и который вы в конечном итоге вызываете, либо связав его с кнопкой листа, либо нажав Alt-F8 и выбрав свое имя подпрограммы из списка – user3598756

+0

Я сделал это, но это дало мне синтаксическую ошибку: Sub Copy() Рабочие листы («Производительность MMT»). Диапазон («A2: I108850»). Значение = Рабочие листы («Москва»). Диапазон (" A2: I108850 "). ValueWorksheets (« Sheet1 »). Диапазон (« A2: I108850 »). Копии рабочих листов (« Лист1 »). Диапазон (« A4 ») End Sub – DevanDevak