Вырезание, перемещение, копирование и вставка ячеек (диапазонов) в 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») |
Содержание
- Range.Insert method (Excel)
- Syntax
- Parameters
- Return value
- Remarks
- Example
- Support and feedback
- Метод Range.Insert (Excel)
- Синтаксис
- Параметры
- Возвращаемое значение
- Примечания
- Пример
- Поддержка и обратная связь
- VBA Insert Row or Column
- Insert a Single Row or Column
- Insert New Row
- Insert New Column
- Insert Multiple Rows or Columns
- Insert Multiple Rows
- Insert Multiple Columns
- VBA Coding Made Easy
- Insert – Shift & CopyOrigin
- Other Insert Examples
- Insert Copied Rows or Columns
- Insert Rows Based on Cell Value
- Delete Rows or Columns
- VBA Code Examples Add-in
- VBA Insert Range in Excel
- VBA Reference
- 120+ Project Management Templates
- VBA Insert Cell or Range in a worksheet – Syntax
- VBA Insert Range in a Worksheet – xlDown
- VBA Insert Range in a Worksheet – xlToRight
- VBA Insert Range in a Worksheet – EntireRow
- VBA Insert Range in a Worksheet – EntireColumn
- VBA Insert Range in a Worksheet – Instructions
- Cell and Range VBA properties and actions
- Referencing ranges & cells from the worksheet
- Assigning a range to a variable
- Selecting ranges and cells
- Changing the value of a range or cell
- Setting the value of a variable based on the value of a cell
- Counting cells, rows and columns
- Looping through cells, rows and columns in a range
- Inserting rows, columns, ranges and cells
- Deleting rows, columns, ranges and cells
- Copy and pasting
- Copying and paste without using the clipboard
- Finding the last cell in a row or column
- Finding the first cell in a range
- Finding the row and column of the active cell
Range.Insert method (Excel)
Inserts a cell or a range of cells into the worksheet or macro sheet and shifts other cells away to make space.
Syntax
expression.Insert (Shift, CopyOrigin)
expression A variable that represents a Range object.
Parameters
Name | Required/Optional | Data type | Description |
---|---|---|---|
Shift | Optional | Variant | Specifies which way to shift the cells. Can be one of the following XlInsertShiftDirection constants: xlShiftToRight or xlShiftDown. If this argument is omitted, Microsoft Excel decides based on the shape of the range. |
CopyOrigin | Optional | Variant | The copy origin; that is, from where to copy the format for inserted cells. Can be one of the following XlInsertFormatOrigin constants: xlFormatFromLeftOrAbove (default) or xlFormatFromRightOrBelow. |
Return value
There is no value for CopyOrigin that is equivalent to Clear Formatting when inserting cells interactively in Excel. To achieve this, use the ClearFormats method.
Example
This example inserts a row above row 2, copying the format from the row below (row 3) instead of from the header row.
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.
Источник
Метод Range.Insert (Excel)
Вставляет ячейку или диапазон ячеек в лист или лист макросов и перемещает другие ячейки в сторону, чтобы освободить место.
Синтаксис
expression. Insert (SHIFT, CopyOrigin)
выражение: переменная, представляющая объект Range.
Параметры
Имя | Обязательный или необязательный | Тип данных | Описание |
---|---|---|---|
Shift | Необязательный | Variant | Определяет способ сдвига ячеек. Может быть одной из следующих констант XlInsertShiftDirection : xlShiftToRight или xlShiftDown. Если этот аргумент опущен, Microsoft Excel принимает решение на основе формы диапазона. |
CopyOrigin | Необязательный | Variant | Источник копирования; то есть, откуда копировать формат для вставленных ячеек. Может быть одной из следующих констант XlInsertFormatOrigin : xlFormatFromLeftOrAbove (по умолчанию) или xlFormatFromRightOrBelow. |
Возвращаемое значение
Примечания
Для параметра CopyOrigin нет значения, эквивалентного значению Clear Formatting при вставке ячеек в Excel в интерактивном режиме. Для этого используйте метод ClearFormats .
Пример
В этом примере вставляется строка над строкой 2, копируя формат из строки ниже (строка 3), а не из строки заголовка.
Поддержка и обратная связь
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.
Источник
VBA Insert Row or Column
In this Article
This tutorial will demonstrate how to use VBA to insert rows and columns in Excel.
To insert rows or columns we will use the Insert Method.
Insert a Single Row or Column
Insert New Row
To insert a single row, you can use the Rows Object:
Or you can use the Range Object along with EntireRow:
Insert New Column
Similar to inserting rows, we can use the Columns Object to insert a column:
Or the Range Object, along with EntireColumn:
Insert Multiple Rows or Columns
Insert Multiple Rows
When inserting multiple rows with the Rows Object, you must enter the rows in quotations:
Inserting multiple rows with the Range Object works the same as with a single row:
Insert Multiple Columns
When inserting multiple columns with the Columns Object, enter the column letters in quotations:
Inserting multiple columns with the Range Object works the same as with a single column:
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!
Insert – Shift & CopyOrigin
The Insert Method has two optional arguments:
- Shift – Which direction to shift the cells
- CopyOrigin – Which cell formatting to copy (above, below, left, or right)
The Shift argument is irrelevant when inserting entire rows or columns. It only allows you to indicate to shift down or shift to the right:
- xlShiftDown – Shift cells down
- xlShiftToRight – Shift cells to the right
As you can see, you can’t shift up or to the left.
The CopyOrigin argument has two potential inputs:
- xlFormatFromLeftorAbove – (0) Newly-inserted cells take formatting from cells above or to the left
- xlFormatFromRightorBelow (1) Newly-inserted cells take formatting from cells below or to the right.
Let’s look at some examples of the CopyOrigin argument. Here’s our initial data:
This example will insert a row, taking the formatting from the above row.
This example will insert a row, taking the formatting from the below row.
Other Insert Examples
Insert Copied Rows or Columns
If you’d like to insert a copied row, you would use code like this:
Here we copy Row 1 and Insert it at Row 5.
Insert Rows Based on Cell Value
Delete Rows or Columns
To delete rows or columns, simply use the Delete method.
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.
Источник
VBA Insert Range in Excel
VBA Reference
Effortlessly
Manage Your Projects
120+ Project Management Templates
Seamlessly manage your projects with our powerful & multi-purpose templates for project management.
120+ PM Templates Includes:
50+ Excel Templates
50+ PowerPoint Templates
25+ Word Templates
A Powerful & Multi-purpose Templates for project management. Now seamlessly manage your projects, tasks, meetings, presentations, teams, customers, stakeholders and time. This page describes all the amazing new features and options that come with our premium templates.
Save Up to 85% LIMITED TIME OFFER
All-in-One Pack
120+ Project Management Templates
Essential Pack
50+ Project Management Templates
Excel Pack
50+ Excel PM Templates
PowerPoint Pack
50+ Excel PM Templates
MS Word Pack
25+ Word PM Templates
Ultimate Project Management Template
Ultimate Resource Management Template
Project Portfolio Management Templates
We can use VBA to Insert a cell or range(Collection of cells) in a worksheet, While inserting a range it will shifts the other cells towards Right(xlToRight) or Down(xlDown) side. VBA Insert range will be helpful while automating a task and you want to provide some more cells in between the another range. You can also insert entire Row(s) or Column(s) in that particular range.
VBA Insert Cell or Range in a worksheet – Syntax
Here is the syntax to Insert a cell or range(Collection of cells) in a worksheet and then it will shifts the other cells towards Right(xlToRight) or Down(xlDown).
Shift – (Optional): It will specify the cells to which side has to shift. Following are the two constants xlToRight and xlDownto shift the cells to either right or down side.
CopyOrigin – (Optional): we can use the CopyOrigin to mention destination location of the range.
VBA Insert Range in a Worksheet – xlDown
Below is the Excel VBA Macro or code to Insert range.Here inserting the range in “C7” and moving the cells towards down position.
VBA Insert Range in a Worksheet – xlToRight
Below is the Excel VBA Macro or code to Insert range.Here inserting the range in “C7” and moving the cells towards right side position.
VBA Insert Range in a Worksheet – EntireRow
Below is the Excel VBA Macro or code to Insert entire rows in the range.Here we are inserting rows in the range(“B2:D10”).ie. This will insert the new rows 2 to 10.
Here CopyOrigin tells excel weather if you want to insert the new rows with the above or below row formats. ‘xlFormatFromLeftOrAbove’ will copy the above rows formats while inserting new rows. xlFormatFromRightOrBelow will copy the formats from the below rows while inserting new rows.
VBA Insert Range in a Worksheet – EntireColumn
Below is the Excel VBA Macro or code to Insert entire columns in the range.Here we are inserting columns in the range(“B2:D10”).ie. This will insert the new columns ‘B’ to ‘D’.
Here CopyOrigin tells excel weather if you want to insert the new columns with the left or right column formats. ‘xlFormatFromLeftOrAbove’ will copy the left side column formats while inserting new columns. xlFormatFromRightOrBelow will copy the formats from the right side column while inserting new columns.
VBA Insert Range in a Worksheet – Instructions
Please follow the below step by step instructions to execute the above mentioned VBA macros or codes:
Источник
Cell and Range VBA properties and actions
Manipulating ranges and cells is one of the most common actions in VBA. You can use the following to either learn from or just to copy and paste into your own code.
Referencing ranges & cells from the worksheet
Assigning a range to a variable
Selecting ranges and cells
Changing the value of a range or cell
Setting the value of a variable based on the value of a cell
Counting cells, rows and columns
Looping through cells, rows and columns in a range
Inserting rows, columns, ranges and cells
Deleting rows, columns, ranges and cells
Copy and pasting
Copying and paste without using the clipboard
Finding the last cell in a row or column
Finding the first cell in a range
Finding the row and column of the active cell
About the author
Hey, I’m Mark, and I run Excel Off The Grid.
My parents tell me that at the age of 7 I declared I was going to become a qualified accountant. I was either psychic or had no imagination, as that is exactly what happened. However, it wasn’t until I was 35 that my journey really began.
In 2015, I started a new job, for which I was regularly working after 10pm. As a result, I rarely saw my children during the week. So, I started searching for the secrets to automating Excel. I discovered that by building a small number of simple tools, I could combine them together in different ways to automate nearly all my regular tasks. This meant I could work less hours (and I got pay raises!). Today, I teach these techniques to other professionals in our training program so they too can spend less time at work (and more time with their children and doing the things they love).
Do you need help adapting this post to your needs?
I’m guessing the examples in this post don’t exactly match your situation. We all use Excel differently, so it’s impossible to write a post that will meet everybody’s needs. By taking the time to understand the techniques and principles in this post (and elsewhere on this site), you should be able to adapt it to your needs.
But, if you’re still struggling you should:
- Read other blogs, or watch YouTube videos on the same topic. You will benefit much more by discovering your own solutions.
- Ask the ‘Excel Ninja’ in your office. It’s amazing what things other people know.
- Ask a question in a forum like Mr Excel, or the Microsoft Answers Community. Remember, the people on these forums are generally giving their time for free. So take care to craft your question, make sure it’s clear and concise. List all the things you’ve tried, and provide screenshots, code segments and example workbooks.
- Use Excel Rescue, who are my consultancy partner. They help by providing solutions to smaller Excel problems.
What next?
Don’t go yet, there is plenty more to learn on Excel Off The Grid. Check out the latest posts:
Источник
A Powerful & Multi-purpose Templates for project management. Now seamlessly manage your projects, tasks, meetings, presentations, teams, customers, stakeholders and time. This page describes all the amazing new features and options that come with our premium templates.
Save Up to 85% LIMITED TIME OFFER
All-in-One Pack
120+ Project Management Templates
Essential Pack
50+ Project Management Templates
Excel Pack
50+ Excel PM Templates
PowerPoint Pack
50+ Excel PM Templates
MS Word Pack
25+ Word PM Templates
Ultimate Project Management Template
Ultimate Resource Management Template
Project Portfolio Management Templates
- VBA Insert Cell or Range in a worksheet – Syntax
- VBA Insert Range in a Worksheet – xlDown
- VBA Insert Range in a Worksheet – xlToRight
- VBA Insert Range in a Worksheet – EntireRow
- VBA Insert Range in a Worksheet – EntireColumn
- VBA Insert Range in a Worksheet – Instructions
Page load link
Go to Top
I need some help with an excel VBA function.
I have data that looks like this
ColA ColB
a123 a123
a124 a124
a127 a126
a128 a127
.... ....
I want to compare the contents of ColA and ColB, Where the contents are different I want to insert a blank cell into column A. So the result will look like:
ColA ColB
a123 a123
a124 a124
a126
a127 a127
.... ....
Any suggestions as to how I could do this in Excel.
Thanks in advance
UPDATED
I tried the method below with the following code to insert the cell and it is working fine, I now realize when I run it that I need some more functionality though.
first_col.Cells(row, 1).Select
Selection.Insert Shift:=xlDown
if the value in ColA with the «a» removed is less than the value in ColB with the «a» removed I want to insert the cell in in ColA and I also need to insert a cell in the same position in ColC (contains other data). If ColB has a larger value I want to insert the cell in ColB only. I think I know what to do inside the If statement but I’m not sure how to construct the IF. Here is what I am thinking
Set other_col = Range("C1:C100")
//if substring of ColA > substring of ColB
first_col.Cells(row, 1).Select
Selection.Insert Shift:=xlDown
other_col.Cells(row, 1).Select
Selection.Insert Shift:=xlDown
//else
second_col.Cells(row, 1).Select
Selection.Insert Shift:=xlDown
title | keywords | f1_keywords | ms.prod | api_name | ms.assetid | ms.date | ms.localizationpriority |
---|---|---|---|---|---|---|---|
Range.Insert method (Excel) |
vbaxl10.chm144149 |
vbaxl10.chm144149 |
excel |
Excel.Range.Insert |
e612bbc8-3942-3349-f157-c0459805794a |
05/11/2019 |
medium |
Range.Insert method (Excel)
Inserts a cell or a range of cells into the worksheet or macro sheet and shifts other cells away to make space.
Syntax
expression.Insert (Shift, CopyOrigin)
expression A variable that represents a Range object.
Parameters
Name | Required/Optional | Data type | Description |
---|---|---|---|
Shift | Optional | Variant | Specifies which way to shift the cells. Can be one of the following XlInsertShiftDirection constants: xlShiftToRight or xlShiftDown. If this argument is omitted, Microsoft Excel decides based on the shape of the range. |
CopyOrigin | Optional | Variant | The copy origin; that is, from where to copy the format for inserted cells. Can be one of the following XlInsertFormatOrigin constants: xlFormatFromLeftOrAbove (default) or xlFormatFromRightOrBelow. |
Return value
Variant
Remarks
There is no value for CopyOrigin that is equivalent to Clear Formatting when inserting cells interactively in Excel. To achieve this, use the ClearFormats method.
With Range("B2:E5") .Insert xlShiftDown .ClearFormats End With
Example
This example inserts a row above row 2, copying the format from the row below (row 3) instead of from the header row.
Range("2:2").Insert CopyOrigin:=xlFormatFromRightOrBelow
[!includeSupport and feedback]