Vba Excel вставить строку со сдвигом вниз
Обновлено: 21.11.2024
Для вставки строк или столбцов мы будем использовать метод вставки.
Вставить одну строку или столбец
Вставить новую строку
Чтобы вставить одну строку, вы можете использовать объект Rows:
Или вы можете использовать объект Range вместе с EntireRow:
Вставить новый столбец
Подобно вставке строк, мы можем использовать объект Columns для вставки столбца:
Или объект Range вместе с EntireColumn:
Вставить несколько строк или столбцов
Вставить несколько строк
При вставке нескольких строк с помощью объекта Rows вы должны вводить строки в кавычках:
Вставка нескольких строк с помощью объекта Range работает так же, как и с одной строкой:
Вставить несколько столбцов
При вставке нескольких столбцов с помощью объекта Columns вводите буквы столбцов в кавычках:
Вставка нескольких столбцов с помощью объекта Range работает так же, как и с одним столбцом:
Программирование VBA стало проще
Прекратите искать код VBA в Интернете. Узнайте больше об AutoMacro — конструкторе кода VBA, который позволяет новичкам создавать процедуры с нуля с минимальными знаниями в области кодирования и множеством функций, позволяющих сэкономить время для всех пользователей!
Вставить — Сдвинуть и скопировать источник
Метод Insert имеет два необязательных аргумента:
- Shift — в каком направлении смещать ячейки.
- CopyOrigin — форматирование ячейки для копирования (сверху, снизу, слева или справа).
Аргумент Shift не имеет значения при вставке целых строк или столбцов. Это позволяет вам только указать сдвиг вниз или сдвиг вправо:
- xlShiftDown — сдвиг ячеек вниз
- xlShiftToRight — сдвиг ячеек вправо
Как видите, сдвинуться вверх или вправо нельзя.
Аргумент CopyOrigin имеет два потенциальных входных значения:
- xlFormatFromLeftorAbove — (0) только что вставленные ячейки форматируются из ячеек выше или слева
- xlFormatFromRightorBelow (1) Новые вставленные ячейки форматируются из ячеек, расположенных ниже или справа.
Давайте рассмотрим несколько примеров аргумента CopyOrigin. Вот наши исходные данные:
В этом примере будет вставлена строка с форматированием предыдущей строки.
Мы можем использовать VBA для вставки ячейки или диапазона (коллекции ячеек) на листе. При вставке диапазона другие ячейки будут сдвигаться вправо (xlToRight) или вниз (xlDown). Диапазон вставки VBA будет полезен при автоматизации задачи, и вы хотите предоставить еще несколько ячеек между другим диапазоном. Вы также можете вставить всю строку (строки) или столбец (столбцы) в этот конкретный диапазон.
VBA Вставить ячейку или диапазон на лист — синтаксис
Вот синтаксис для вставки ячейки или диапазона (набора ячеек) в рабочий лист, а затем он сдвинет другие ячейки вправо (xlToRight) или вниз (xlDown).
Shift – (необязательно): указывает ячейки, на которые нужно сместиться. Ниже приведены две константы xlToRight и xlDown для сдвига ячеек вправо или вниз.
CopyOrigin — (необязательно): мы можем использовать CopyOrigin, чтобы указать место назначения диапазона.
Вставка диапазона VBA на лист — xlDown
Ниже приведен макрос или код Excel VBA для вставки диапазона. Здесь вставка диапазона в «C7» и перемещение ячеек вниз.
Вставка диапазона VBA на лист — xlToRight
Ниже приведен макрос или код Excel VBA для вставки диапазона. Здесь вставка диапазона в «C7» и перемещение ячеек вправо.
Вставить диапазон VBA на лист — EntireRow
Ниже приведен макрос или код Excel VBA для вставки целых строк в диапазон. Здесь мы вставляем строки в диапазоне ("B2:D10").т.е. Это вставит новые строки со 2 по 10.
Здесь CopyOrigin сообщает Excel о погоде, хотите ли вы вставить новые строки с форматами строк выше или ниже. «xlFormatFromLeftOrAbove» скопирует вышеуказанные форматы строк при вставке новых строк. xlFormatFromRightOrBelow скопирует форматы из строк ниже при вставке новых строк.
Вставка диапазона VBA на листе — весь столбец
Ниже приведен макрос или код Excel VBA для вставки целых столбцов в диапазон. Здесь мы вставляем столбцы в диапазон ("B2:D10").т.е. Это вставит новые столбцы от «B» до «D».
Здесь CopyOrigin сообщает Excel о погоде, если вы хотите вставить новые столбцы с форматами левого или правого столбца.«xlFormatFromLeftOrAbove» скопирует форматы левых столбцов при вставке новых столбцов. xlFormatFromRightOrBelow скопирует форматы из правого столбца при вставке новых столбцов.
Вставить диапазон VBA на лист — инструкции
Пожалуйста, следуйте приведенным ниже пошаговым инструкциям, чтобы выполнить вышеупомянутые макросы или коды VBA:
В этом руководстве мы рассмотрим, как вставить строку или столбец с помощью кода VBA в Excel. Мы также рассмотрим различные способы написания макроса для этого.
Вставьте одну строку с помощью VBA
Чтобы вставить строку с помощью кода VBA, необходимо использовать свойство «Вся строка» с методом «Вставить». С помощью свойства «целая строка» вы можете обратиться ко всей строке, используя ячейку, а затем вставить туда новую строку. По умолчанию перед указанной ячейкой будет вставлена одна строка.
- Сначала укажите ячейку с помощью объекта диапазона.
- Теперь введите точку (.), чтобы получить список свойств и методов.
- После этого выберите свойство «Вся строка» или введите его.
- В конце снова введите точку (.) и выберите метод «Вставить» или введите его.
Ваш код готов для вставки строки. Теперь, когда вы запустите этот код, он мгновенно вставит новую строку перед ячейкой A1.
Вставить несколько строк
Я нашел два способа вставки нескольких строк на лист. Первый — это тот же метод вставки, который мы использовали в приведенном выше примере.
При этом вам нужно указать диапазон, количество которого эквивалентно количеству строк, которые вы хотите вставить. Теперь предположим, что вы хотите вставить 5 строк после, в этом случае вы можете использовать следующий код.
Честно говоря, я не нашел этот метод очень полезным, потому что вам нужно изменить диапазон, если вы хотите изменить количество строк.
Итак, вот второй метод.
Когда вы запускаете этот код, он просит вас ввести количество строк, которые вы хотите добавить, а затем номер строки, в которую вы хотите добавить все эти строки. Он использует FOR LOOP (For Next), чтобы зациклить это количество раз и вставить строки одну за другой.
Вставка строк на основе значений ячеек
Если вы хотите вставить строки на основе значения ячейки, вы можете использовать следующий код.
Когда вы запускаете этот макрос, он берет количество строк из ячейки A1 и строки, в которую вы хотите добавить строки из ячейки B1.
Вставить строку без форматирования
Когда вы вставляете строку, в которой указанная выше строка имеет определенное форматирование, в этом случае строка также будет иметь это форматирование автоматически. И самый простой способ справиться с этим — использовать четкие форматы. Рассмотрим следующий код.
Когда вы запускаете приведенный выше код, он вставляет новую строку перед 7-й строкой. Теперь, что происходит, когда вы вставляете строку перед 7-й строкой, эта новая строка становится 7-й строкой, а затем вторая строка кода удаляет форматы из этой строки.
Вставить скопированную строку
Вы также можете использовать тот же метод, чтобы скопировать строку, а затем вставить ее в другое место. См. следующий код.
В уроке о вставке строк и столбцов я показал, как можно вставить новую строку в Excel. Здесь я покажу вам, как вы можете добавить новую строку с помощью VBA.
Создание макроса
Вам не нужно запоминать код, который позволит вам вставить новую строку. В этом примере мы воспользуемся средством записи макросов и вырежем тот код, который будет нам полезен.
Сначала нажмите кнопку, чтобы записать макрос.
Назовите свой макрос и нажмите OK. Щелкните правой кнопкой мыши любой номер строки и выберите «Вставить». Остановить макрос.
Выполнение макроса
Выберите ПРОСМОТР >> Макросы >> Макросы и откройте окно макроса. Выберите свой макрос и нажмите «Выполнить». Как видите, на лист вставлена новая строка.
ВНИМАНИЕ
Когда вы используете макрос для вставки новой строки, вы не можете использовать отмену ( Ctrl + Z ).
Используйте левый Alt + F11, чтобы открыть окно кода VBA. Дважды щелкните значок модуля в Project Explorer (если вы его не видите, используйте Ctrl + R).
Анализ кода
Взгляните на следующий код.
- Selection.Insert Shift:=xlDown сдвигает вниз данные из выбранных ячеек и из ячеек ниже.
- CopyOrigin:=xlFormatFromLeftOrAbove использует форматирование из ячейки выше или из ячейки слева. xlFormatFromLeftOrAbove принимает одно из двух значений: 0 или 1. По умолчанию используется значение 0. Таким образом, вы также можете написать CopyOrigin:=0 или даже удалить код. По умолчанию будет использоваться форматирование из ячейки выше. Если вы хотите избавиться от форматирования, используйте CopyOrigin:=1
Этот код будет вставлять новую строку только при нажатии на номер строки. Если вы используете его в ячейке, он сместит данные внутри этой ячейки.
Если вы хотите, чтобы макрос работал так, чтобы он добавлял новую строку не только при выборе буквы строки, но и любой ячейки внутри этой строки, вы можете использовать следующий код.
Читайте также: