Вырезание, перемещение, копирование и вставка ячеек (диапазонов) в VBA Excel. Методы Cut, Copy и PasteSpecial объекта Range, метод Paste объекта Worksheet.
Метод Range.Cut
Range.Cut – это метод, который вырезает объект Range (диапазон ячеек) в буфер обмена или перемещает его в указанное место на рабочем листе.
Синтаксис
Параметры
Параметры | Описание |
---|---|
Destination | Необязательный параметр. Диапазон ячеек рабочего листа, в который будет вставлен (перемещен) вырезанный объект Range (достаточно указать верхнюю левую ячейку диапазона). Если этот параметр опущен, объект вырезается в буфер обмена. |
Для вставки на рабочий лист диапазона ячеек, вырезанного в буфер обмена методом Range.Cut, следует использовать метод Worksheet.Paste.
Метод Range.Copy
Range.Copy – это метод, который копирует объект Range (диапазон ячеек) в буфер обмена или в указанное место на рабочем листе.
Синтаксис
Параметры
Параметры | Описание |
---|---|
Destination | Необязательный параметр. Диапазон ячеек рабочего листа, в который будет вставлен скопированный объект Range (достаточно указать верхнюю левую ячейку диапазона). Если этот параметр опущен, объект копируется в буфер обмена. |
Метод Worksheet.Paste
Worksheet.Paste – это метод, который вставляет содержимое буфера обмена на рабочий лист.
Синтаксис
Worksheet.Paste (Destination, Link) |
Метод Worksheet.Paste работает как с диапазонами ячеек, вырезанными в буфер обмена методом Range.Cut, так и скопированными в буфер обмена методом Range.Copy.
Параметры
Параметры | Описание |
---|---|
Destination | Необязательный параметр. Диапазон (ячейка), указывающий место вставки содержимого буфера обмена. Если этот параметр не указан, используется текущий выделенный объект. |
Link | Необязательный параметр. Булево значение, которое указывает, устанавливать ли ссылку на источник вставленных данных: True – устанавливать, False – не устанавливать (значение по умолчанию). |
В выражении с методом Worksheet.Paste можно указать только один из параметров: или Destination, или Link.
Для вставки из буфера обмена отдельных компонентов скопированных ячеек (значения, форматы, примечания и т.д.), а также для проведения транспонирования и вычислений, используйте метод Range.PasteSpecial (специальная вставка).
Примеры
Вырезание и вставка диапазона одной строкой (перемещение):
Range(«A1:C3»).Cut Range(«E1») |
Вырезание ячеек в буфер обмена и вставка методом ActiveSheet.Paste:
Range(«A1:C3»).Cut ActiveSheet.Paste Range(«E1») |
Копирование и вставка диапазона одной строкой:
Range(«A18:C20»).Copy Range(«E18») |
Копирование ячеек в буфер обмена и вставка методом ActiveSheet.Paste:
Range(«A18:C20»).Copy ActiveSheet.Paste Range(«E18») |
Копирование одной ячейки и вставка ее данных во все ячейки заданного диапазона:
Range(«A1»).Copy Range(«B1:D10») |
paha83 Пользователь Сообщений: 12 |
Доброго времени суток уважаемые форумчане! Задача. С помощью VBA: Спасибо! Прикрепленные файлы
|
CAHO Пользователь Сообщений: 2183 |
Пункт 3 и 4 противоречат друг другу. Или я не так понял. Мастерство программиста не в том, чтобы писать программы, работающие без ошибок. |
paha83 Пользователь Сообщений: 12 |
Приветствую, САНО! |
kakaccc Пользователь Сообщений: 5 |
#4 22.09.2015 15:38:18 paha83
, если еще актуально:
Здесь первые 3 пункта. Прикрепленные файлы
Изменено: kakaccc — 22.09.2015 18:11:32 |
||
kakaccc Пользователь Сообщений: 5 |
#5 23.09.2015 15:35:13 Для 5 пункта:
Хотя, по-моему, без макроса будет даже проще. Пока он настроен так, что его надо запустить на каждом листе, который будет затем защищен. Прикрепленные файлы
|
||
paha83 Пользователь Сообщений: 12 |
Доброго времени суток, kakaccc! Большое спасибо за ответ и помощь. Еще раз спасибо!!! |
rSkrin Пользователь Сообщений: 3 |
Добрый день! |
kakaccc Пользователь Сообщений: 5 |
#8 27.02.2016 17:38:57
Немного громоздкий макрос получился. Изменено: kakaccc — 28.02.2016 02:18:56 |
||
KuklP Пользователь Сообщений: 14868 E-mail и реквизиты в профиле. |
#9 27.02.2016 18:36:24 kakaccc, чем по-Вашему будут отличаться результаты, если блок:
записать так:
Я сам — дурнее всякого примера! … |
||||
TheBestOfTheBest Пользователь Сообщений: 2366 Excel 2010 +PLEX +SaveToDB +PowerQuery |
Файл должен находиться в папке c:1. На таблице ПКМ-Обновить. Прикрепленные файлы
Неизлечимых болезней нет, есть неизлечимые люди. |
kakaccc Пользователь Сообщений: 5 |
KuklP, потому что я нуб в vba Спасибо! Буду теперь знать и использовать эту функцию. |
rSkrin Пользователь Сообщений: 3 |
Спасибо друзья! Но есть вопрос. Уважаемый kakaccc, правильно ли я понял про «таблица должна начинаться с ячейки А1»- т.е. начало всей таблицы, в том числе и шапки. |
rSkrin Пользователь Сообщений: 3 |
Вопрос отменяю. Чуть подправил, проверил работу, все отлично!!! Спасибо. |
KuklP Пользователь Сообщений: 14868 E-mail и реквизиты в профиле. |
#14 28.02.2016 13:55:14
Да, это destination.
можно записать буквально:
в этом слуячае родительский объект вычисляется 3 раза вместо одного в предыдущем примере. Я сам — дурнее всякого примера! … |
||||||
kakaccc Пользователь Сообщений: 5 |
KuklP, все, раз это destination, то вопросов нет. Более менее разобрался. Буду теперь пользоваться. Красиво и лаконично получилось. Спасибо за объяснение! rSkrin, да, вся таблица должна начинаться с А1 (шапка в вашемслучае). Можно сделать независимо от находжения таблицы, используя свойство CurrentRegion, например. Но тогда перед запуском макроса надо будет выделять какую-нибудь ячейку из таблицы. Первоначально я так и записал макрос. Не знал как для вас проще будет. Если хотите, можно так сделать. |
0mega Пользователь Сообщений: 170 |
#16 06.11.2022 11:54:18 KuklP
, здравствуйте
почему команда начинается с точки
Какое у них отличие ? |
||||
MikeVol Пользователь Сообщений: 229 Ученик |
#17 06.11.2022 12:29:09 0mega, Думаю если вы прочтёте справку то возможно поймёте что к чему. почему команда начинается с точки |
In this Article
- Rows & Columns – Paste vs. Insert
- Copy & Paste Over Existing Row / Column
- Copy & Insert Row / Column
- Copy Entire Row
- Cut and Paste Rows
- Copy Multiple Rows
- Copy Entire Column
- Cut and Paste Columns
- Copy Multiple Columns
- Copy Rows or Columns to Another Sheet
- Cut Rows or Columns to Another Sheet
This tutorial will teach you how to copy (or cut) entire Rows or Columns using VBA. We cover copying and pasting ranges of cells in another article.
First we will show you how to paste or insert copied rows/columns and discuss the differences. Then we will show you all of the different ways to references rows and columns when copying or cutting.
Rows & Columns – Paste vs. Insert
When pasting rows and columns you have two options: You can paste over the existing row (or column) or you can insert a new row (or column).
Let’s look at the difference…
Copy & Paste Over Existing Row / Column
This will copy row 1 and paste it into the existing row 5:
Range("1:1").Copy Range("5:5")
This will copy column C and paste it into column E:
Range("C:C").Copy Range("E:E")
Copy & Insert Row / Column
Instead you can insert the copied row or column and shift the existing rows or columns to make room.
This will copy row 1 and insert it into row 5, shifting the existing rows down:
Range("1:1").Copy
Range("5:5").Insert
This will copy column C and insert it into column E, shifting the existing columns to the right:
Range("C:C").Copy
Range("E:E").Insert
Copy Entire Row
Below we will show you several ways to copy row 1 and paste into row 5.
Range("1:1").Copy Range("5:5")
Range("A1").EntireRow.Copy Range("A5")
Rows(1).Copy Rows(5)
Cut and Paste Rows
Simply use Cut instead of Copy to cut and paste rows:
Rows(1).Cut Rows(5)
Copy Multiple Rows
Here are examples of copying multiple rows at once:
Range("5:7").Copy Range("10:13")
Range("A5:A7").EntireRow.Copy Range("A10:A13")
Rows("5:7").Copy Rows("10:13")
VBA Coding Made Easy
Stop searching for VBA code online. Learn more about AutoMacro — A VBA Code Builder that allows beginners to code procedures from scratch with minimal coding knowledge and with many time-saving features for all users!
Learn More
Copy Entire Column
You can copy entire columns similarily to copying entire rows:
Range("C:C").Copy Range("E:E")
Range("C1").EntireColumn.Copy Range("C1").EntireColumn
Columns(3).Copy Range(5)
Cut and Paste Columns
Simply use Cut instead of Copy to cut and paste columns:
Range("C:C").Cut Range("E:E")
Copy Multiple Columns
Here are examples of copying multiple columns at once:
Range("C:E").Copy Range("G:I")
Range("C1:E1").EntireColumn.Copy Range("G1:I1")
Columns("3:5").Copy Columns("7:9")
VBA Programming | Code Generator does work for you!
Copy Rows or Columns to Another Sheet
To copy to another sheet, simply use the Sheet Object:
Sheets("sheet1").Range("C:E").Copy Sheets("sheet2").Range("G:I")
Cut Rows or Columns to Another Sheet
You can use the exact same technique to cut and paste rows or columns to another sheet.
Sheets("sheet1").Range("C:E").Cut Sheets("sheet2").Range("G:I")
wishcom 1 / 1 / 0 Регистрация: 17.02.2010 Сообщений: 131 |
||||||||
1 |
||||||||
18.12.2010, 21:39. Показов 18959. Ответов 20 Метки нет (Все метки)
Не понимаю почему работат.
,а
нет.
0 |
pashulka 4131 / 2235 / 940 Регистрация: 01.12.2010 Сообщений: 4,624 |
||||
19.12.2010, 03:06 |
2 |
|||
Вы забыли инструкцию Select или Activate
0 |
wishcom 1 / 1 / 0 Регистрация: 17.02.2010 Сообщений: 131 |
||||
19.12.2010, 18:09 [ТС] |
3 |
|||
Activate Точно отпадает.
0 |
4131 / 2235 / 940 Регистрация: 01.12.2010 Сообщений: 4,624 |
|
19.12.2010, 18:36 |
4 |
Вы спросили, почему не работает Ваш код, и я ответил, что
0 |
1 / 1 / 0 Регистрация: 17.02.2010 Сообщений: 131 |
|
19.12.2010, 20:48 [ТС] |
5 |
Неужели никак иначе.
0 |
4131 / 2235 / 940 Регистрация: 01.12.2010 Сообщений: 4,624 |
|
19.12.2010, 21:39 |
6 |
Можно и иначе, советую более внимательно ознакомиться с help.
0 |
22 / 5 / 1 Регистрация: 05.09.2010 Сообщений: 370 |
|
20.12.2010, 09:55 |
7 |
Так чтобы не маячило, может надо
0 |
1 / 1 / 0 Регистрация: 17.02.2010 Сообщений: 131 |
|
20.12.2010, 20:04 [ТС] |
8 |
Да отлично я это знаю.
0 |
22 / 5 / 1 Регистрация: 05.09.2010 Сообщений: 370 |
|
21.12.2010, 05:25 |
9 |
А так?
0 |
1 / 1 / 0 Регистрация: 17.02.2010 Сообщений: 131 |
|
21.12.2010, 22:56 [ТС] |
10 |
НЕ…
0 |
4131 / 2235 / 940 Регистрация: 01.12.2010 Сообщений: 4,624 |
|
22.12.2010, 07:06 |
11 |
А вот так …
0 |
wishcom 1 / 1 / 0 Регистрация: 17.02.2010 Сообщений: 131 |
||||
22.12.2010, 20:06 [ТС] |
12 |
|||
0 |
pashulka 4131 / 2235 / 940 Регистрация: 01.12.2010 Сообщений: 4,624 |
||||
22.12.2010, 22:58 |
13 |
|||
А вот так :
‘хотя в Excel наверняка существует функция возвращающая имя столбца,
0 |
1 / 1 / 0 Регистрация: 17.02.2010 Сообщений: 131 |
|
23.12.2010, 18:14 [ТС] |
14 |
У тебя код побыстрее, но у меня для Rows и Cols, в функции содержатся все операторы. Кстати. Ссылка на адрес… это черевато крахом Exel.
0 |
4131 / 2235 / 940 Регистрация: 01.12.2010 Сообщений: 4,624 |
|
24.12.2010, 01:41 |
15 |
Этот код я написал специально для Вас, и в свете вышеописанных задач он свою функцию выполняет на 100%.
0 |
1 / 1 / 0 Регистрация: 17.02.2010 Сообщений: 131 |
|
24.12.2010, 11:29 [ТС] |
16 |
У меня сверху стоит Option Explicit Ну мне покрайней мере надо было Не. Дописал бы.. Самому пригодилось бы…
0 |
wishcom 1 / 1 / 0 Регистрация: 17.02.2010 Сообщений: 131 |
||||
24.12.2010, 14:01 [ТС] |
17 |
|||
Я тут к твоему коду присмотрелся и написал…
0 |
Dimakart 0 / 0 / 1 Регистрация: 11.10.2010 Сообщений: 48 |
||||
24.12.2010, 19:51 |
18 |
|||
А вот так не проще ли будет ?
0 |
1 / 1 / 0 Регистрация: 17.02.2010 Сообщений: 131 |
|
24.12.2010, 22:08 [ТС] |
19 |
По моему мой код побыстрее…
0 |
4131 / 2235 / 940 Регистрация: 01.12.2010 Сообщений: 4,624 |
|
25.12.2010, 01:21 |
20 |
Снимаю шляпу перед Dimakart. Я этот код хотел оставить напоследок, как мега извращение. Теперь снова придётся придумывать что-то более извращённое.
0 |
Содержание
- VBA Copy / Paste Rows & Columns
- Rows & Columns – Paste vs. Insert
- Copy & Paste Over Existing Row / Column
- Copy & Insert Row / Column
- Copy Entire Row
- Cut and Paste Rows
- Copy Multiple Rows
- VBA Coding Made Easy
- Copy Entire Column
- Cut and Paste Columns
- Copy Multiple Columns
- Copy Rows or Columns to Another Sheet
- Cut Rows or Columns to Another Sheet
- VBA Code Examples Add-in
- Метод Range.Copy (Excel)
- Синтаксис
- Параметры
- Возвращаемое значение
- Пример
- Поддержка и обратная связь
- Range.Copy method (Excel)
- Syntax
- Parameters
- Return value
- Example
- Support and feedback
- VBA Excel. Вырезание, копирование и вставка ячеек (диапазонов)
- Метод Range.Cut
- Синтаксис
- Параметры
- Метод Range.Copy
- Синтаксис
- Параметры
- Метод Worksheet.Paste
- Синтаксис
- Параметры
- Примеры
- 43 комментария для “VBA Excel. Вырезание, копирование и вставка ячеек (диапазонов)”
- макрос excel выделение и копирование строк
- 2 ответа 2
VBA Copy / Paste Rows & Columns
In this Article
This tutorial will teach you how to copy (or cut) entire Rows or Columns using VBA. We cover copying and pasting ranges of cells in another article.
First we will show you how to paste or insert copied rows/columns and discuss the differences. Then we will show you all of the different ways to references rows and columns when copying or cutting.
Rows & Columns – Paste vs. Insert
When pasting rows and columns you have two options: You can paste over the existing row (or column) or you can insert a new row (or column).
Let’s look at the difference…
Copy & Paste Over Existing Row / Column
This will copy row 1 and paste it into the existing row 5:
This will copy column C and paste it into column E:
Copy & Insert Row / Column
Instead you can insert the copied row or column and shift the existing rows or columns to make room.
This will copy row 1 and insert it into row 5, shifting the existing rows down:
This will copy column C and insert it into column E, shifting the existing columns to the right:
Copy Entire Row
Below we will show you several ways to copy row 1 and paste into row 5.
Cut and Paste Rows
Simply use Cut instead of Copy to cut and paste rows:
Copy Multiple Rows
Here are examples of copying multiple rows at once:
VBA Coding Made Easy
Stop searching for VBA code online. Learn more about AutoMacro — A VBA Code Builder that allows beginners to code procedures from scratch with minimal coding knowledge and with many time-saving features for all users!
Copy Entire Column
You can copy entire columns similarily to copying entire rows:
Cut and Paste Columns
Simply use Cut instead of Copy to cut and paste columns:
Copy Multiple Columns
Here are examples of copying multiple columns at once:
Copy Rows or Columns to Another Sheet
To copy to another sheet, simply use the Sheet Object:
Cut Rows or Columns to Another Sheet
You can use the exact same technique to cut and paste rows or columns to another sheet.
VBA Code Examples Add-in
Easily access all of the code examples found on our site.
Simply navigate to the menu, click, and the code will be inserted directly into your module. .xlam add-in.
Источник
Метод Range.Copy (Excel)
Копирует диапазон в указанный диапазон или в буфер обмена.
Хотите создавать решения, которые расширяют возможности Office на разнообразных платформах? Ознакомьтесь с новой моделью надстроек Office. Надстройки Office занимают меньше места по сравнению с надстройками и решениями VSTO, и вы можете создавать их, используя практически любую технологию веб-программирования, например HTML5, JavaScript, CSS3 и XML.
Синтаксис
выражение.Copy (Destination)
выражение: переменная, представляющая объект Range.
Параметры
Имя | Обязательный или необязательный | Тип данных | Описание |
---|---|---|---|
Destination | Необязательный | Variant | Указывает новый диапазон, в который будет скопирован заданный диапазон. Если этот аргумент опущен, Microsoft Excel копирует диапазон в буфер обмена. |
Возвращаемое значение
Пример
В следующем примере кода копируются формулы ячеек A1:D4 с листа Sheet1 в ячейки с E5:H8 на листе Sheet2.
В приведенном ниже примере кода проверяется значение столбца D для каждой строки на листе Sheet1. Если значение в столбце D равно «A», вся строка копируется на лист SheetA в следующую пустую строку. Если значение равно «B», строка копируется на лист SheetB.
Поддержка и обратная связь
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.
Источник
Range.Copy method (Excel)
Copies the range to the specified range or to the Clipboard.
Interested in developing solutions that extend the Office experience across multiple platforms? Check out the new Office Add-ins model. Office Add-ins have a small footprint compared to VSTO Add-ins and solutions, and you can build them by using almost any web programming technology, such as HTML5, JavaScript, CSS3, and XML.
Syntax
expression.Copy (Destination)
expression A variable that represents a Range object.
Parameters
Name | Required/Optional | Data type | Description |
---|---|---|---|
Destination | Optional | Variant | Specifies the new range to which the specified range will be copied. If this argument is omitted, Microsoft Excel copies the range to the Clipboard. |
Return value
Example
The following code example copies the formulas in cells A1:D4 on Sheet1 into cells E5:H8 on Sheet2.
The following code example inspects the value in column D for each row on Sheet1. If the value in column D equals A, the entire row is copied onto SheetA in the next empty row. If the value equals B, the row is copied onto SheetB.
Support and feedback
Have questions or feedback about Office VBA or this documentation? Please see Office VBA support and feedback for guidance about the ways you can receive support and provide feedback.
Источник
VBA Excel. Вырезание, копирование и вставка ячеек (диапазонов)
Вырезание, перемещение, копирование и вставка ячеек (диапазонов) в VBA Excel. Методы Cut, Copy и PasteSpecial объекта Range, метод Paste объекта Worksheet.
Метод Range.Cut
Синтаксис
Параметры
Параметры | Описание |
---|---|
Destination | Необязательный параметр. Диапазон ячеек рабочего листа, в который будет вставлен (перемещен) вырезанный объект Range (достаточно указать верхнюю левую ячейку диапазона). Если этот параметр опущен, объект вырезается в буфер обмена. |
Для вставки на рабочий лист диапазона ячеек, вырезанного в буфер обмена методом Range.Cut, следует использовать метод Worksheet.Paste.
Метод Range.Copy
Синтаксис
Параметры
Параметры | Описание |
---|---|
Destination | Необязательный параметр. Диапазон ячеек рабочего листа, в который будет вставлен скопированный объект Range (достаточно указать верхнюю левую ячейку диапазона). Если этот параметр опущен, объект копируется в буфер обмена. |
Метод Worksheet.Paste
Синтаксис
Метод Worksheet.Paste работает как с диапазонами ячеек, вырезанными в буфер обмена методом Range.Cut, так и скопированными в буфер обмена методом Range.Copy.
Параметры
Параметры | Описание |
---|---|
Destination | Необязательный параметр. Диапазон (ячейка), указывающий место вставки содержимого буфера обмена. Если этот параметр не указан, используется текущий выделенный объект. |
Link | Необязательный параметр. Булево значение, которое указывает, устанавливать ли ссылку на источник вставленных данных: True – устанавливать, False – не устанавливать (значение по умолчанию). |
В выражении с методом Worksheet.Paste можно указать только один из параметров: или Destination, или Link.
Для вставки из буфера обмена отдельных компонентов скопированных ячеек (значения, форматы, примечания и т.д.), а также для проведения транспонирования и вычислений, используйте метод Range.PasteSpecial (специальная вставка).
Примеры
Вырезание и вставка диапазона одной строкой (перемещение):
Вырезание ячеек в буфер обмена и вставка методом ActiveSheet.Paste:
Копирование и вставка диапазона одной строкой:
Копирование ячеек в буфер обмена и вставка методом ActiveSheet.Paste:
Копирование одной ячейки и вставка ее данных во все ячейки заданного диапазона:
43 комментария для “VBA Excel. Вырезание, копирование и вставка ячеек (диапазонов)”
Странно, что не рассмотрено копирование ячеек, которые Cells.
Например, следующая строка копирует ячейку A1 в B2
а эта делает тоже самое, но демонстрирует,
как можно добавить размер и смещение:
Здравствуйте!
Скажите, как можно копировать на Лист 1, а вставить на Лист 2 диапазон ячеек целиком, либо отсортированный по 1 признаку диапазон(например по какому-то определенному значению, скажем, числу «500» в одном столбце Листа 1)?
Привет, Максим!
Вот пример сортировки таблицы по значению 500 в первом столбце на «Лист6» и копирования диапазона с «Лист6» на «Лист4» :
Спасибо большое, только я, наверно, неправильно описал ситуацию.
Сперва из эталонной таблицы Лист 1 копируем весь список на существующий Лист4.
Затем, пропускаем шапку, и, начиная со строки7, уже на Лист4 ищем строку, у которой в столбце 5 стоит число 500.
Вырезаем эту строку и вставляем на позицию строки 7. т.е первая после шапки.
Ищем следующую строку — вырезаем, потом вставляем на позицию строки 7+1=8 и т.д.
В итоге оставим только те строки, у которых в столбце 5 стоит число «500», остальные удаляются строки.
(пробовал менять местами строки в предыдущем коде, ошибок нет, копирует, переходит на лист 4, но строки на нем не удаляет, циклы пошагово проходят, но ничего не изменяется.)
Источник
макрос excel выделение и копирование строк
Здравствуйте. Есть лист в экселе, в котором имеется таблица формата
Но количество строк всегда разное. Как можно макросом узнать количество строк, и перенести их на новый лист? Спасибо
2 ответа 2
Номер строки самой нижней ячейки, которая использована на листе
Количество срок можно определить по наличию значений в определенном столбце:
Этими двумя методами можно определить последнюю ячейку, но не всегда. Если последние строки скрыты, они в подсчет не попадут.
Количество строк пользовательского диапазона:
Здесь тоже есть небольшой подводный камень. Считаем количество строк в пользовательском диапазоне, т.е. с первой использованной до последней. Но строки не всегда используются с первой. Обходим:
Стоит упомянуть и о «большом подводном камне» при использовании UsedRange.Row. Это касается и SpecialCells(xlLastCell).Row (а вот .End(xlUp).Row к этому нечувствителен).
Часто пользователи форматируют строки с запасом. Или на листе данные, копированные с другого диапазона. Или ниже данных скрыты строки. Учитывается весь пользовательский диапазон, все форматированные строки. Даже те строки, которые удалены, но сохранение изменений еще не произведено. И вместо 10 строк будет определено 10000 )
Нужно это все учитывать и применять то, что наиболее подходит к данной задаче.
С переносом данных тоже не все однозначно. Можно Вырезать/Вставить, Копировать/Вставить. Если расположение данных разное или нужна фильтрация, лучше пользоваться массивами (обработка в памяти и выгрузка на лист результата).
Источник