🔥 Метод Insert объекта Range
Метод Insert позволяет вставлять новые ячейки, строки или столбцы в диапазон, сдвигая существующие данные. Это аналог кнопки "Вставить" в Excel.
📌 Синтаксис
🔹 Shift (необязательно) – определяет направление сдвига:
✅xlShiftDown – сдвиг вниз (для вставки строк);
✅xlShiftToRight – сдвиг вправо (для вставки ячеек).
🔹 CopyOrigin (необязательно) – копирует форматирование соседних ячеек:
✅xlFormatFromLeftOrAbove – копирует сверху или слева (по умолчанию);
✅xlFormatFromRightOrBelow – копирует снизу или справа.
📌 Примеры
1️⃣ Вставить пустую строку перед A1
2️⃣ Вставить новый столбец перед A
3️⃣ Вставить ячейки со сдвигом вниз
4️⃣ Вставить ячейки со сдвигом вправо
5️⃣ Вставить строку и скопировать формат сверху
⚠️ Важно:
🔹 Если в Insert не указать Shift, Excel сам выберет направление сдвига.
🔹 Если диапазон — целая строка (EntireRow) или столбец (EntireColumn), то вставка сдвигает весь лист.
🔹 При вставке столбца или строки копирование форматов (CopyOrigin) помогает сохранить стиль таблицы.
💡 Когда использовать?
✅ Автоматическое добавление строк/столбцов в таблицы.
✅ Вставка новых данных без потери существующих.
#VBA #ExcelVBA #Insert #Range #Вставка
Метод Insert позволяет вставлять новые ячейки, строки или столбцы в диапазон, сдвигая существующие данные. Это аналог кнопки "Вставить" в Excel.
📌 Синтаксис
Range.Insert(Shift, CopyOrigin)
🔹 Shift (необязательно) – определяет направление сдвига:
✅xlShiftDown – сдвиг вниз (для вставки строк);
✅xlShiftToRight – сдвиг вправо (для вставки ячеек).
🔹 CopyOrigin (необязательно) – копирует форматирование соседних ячеек:
✅xlFormatFromLeftOrAbove – копирует сверху или слева (по умолчанию);
✅xlFormatFromRightOrBelow – копирует снизу или справа.
📌 Примеры
1️⃣ Вставить пустую строку перед A1
Sub InsertRow()
Range("A1").EntireRow.Insert
End Sub
2️⃣ Вставить новый столбец перед A
Sub InsertColumn()
Range("A1").EntireColumn.Insert
End Sub
3️⃣ Вставить ячейки со сдвигом вниз
Sub InsertCellsDown()
Range("B2:C3").Insert Shift:=xlShiftDown
End Sub
4️⃣ Вставить ячейки со сдвигом вправо
Sub InsertCellsRight()
Range("B2:B5").Insert Shift:=xlShiftToRight
End Sub
5️⃣ Вставить строку и скопировать формат сверху
Sub InsertRowWithFormat()
Range("A5").EntireRow.Insert CopyOrigin:=xlFormatFromLeftOrAbove
End Sub
⚠️ Важно:
🔹 Если в Insert не указать Shift, Excel сам выберет направление сдвига.
🔹 Если диапазон — целая строка (EntireRow) или столбец (EntireColumn), то вставка сдвигает весь лист.
🔹 При вставке столбца или строки копирование форматов (CopyOrigin) помогает сохранить стиль таблицы.
💡 Когда использовать?
✅ Автоматическое добавление строк/столбцов в таблицы.
✅ Вставка новых данных без потери существующих.
#VBA #ExcelVBA #Insert #Range #Вставка