Как вставить столбцы с помощью vba?
В этом уроке мы увидим, как вставить столбец с помощью кода VBA в Excel. Мы также рассмотрим различные способы написания макроса для этого.
Вставьте один столбец с помощью VBA
Чтобы вставить столбец с помощью кода VBA, вам необходимо использовать свойство «Весь столбец» с методом «Вставить». С помощью свойства «весь столбец» вы можете ссылаться на весь столбец, используя ячейку, а затем вставить новый столбец. По умолчанию столбец вставляется перед упомянутой вами ячейкой.

- Сначала укажите ячейку, используя объект диапазона.
- Теперь введите точку (.), чтобы получить список свойств и методов.
- После этого выберите свойство «Весь столбец» или введите его.
- В конце еще раз введите точку (.) и выберите метод «Вставить» или введите его.
Range("A1").EntireColumn.Insert
Ваш код готов для вставки столбца. Теперь, когда вы запускаете этот код, он мгновенно вставляет новый столбец перед столбцом A.
Вставить несколько столбцов
Я нашел два способа вставки нескольких столбцов в электронную таблицу. Первый — это тот же метод вставки, который мы использовали в примере выше. При этом вам необходимо указать диапазон столбцов, номер которого равен номеру столбца, который вы хотите вставить.
Теперь предположим, что вы хотите вставить 5 столбцов после столбца C на случай, если вы сможете использовать такой код.

Range("C:G").EntireColumn.Insert
Честно говоря, я не нашел этот метод очень полезным, потому что вам придется изменить диапазон, если вы хотите изменить сам код. Итак, вот второй метод.
'variables to use in the code Dim iCol As Long Dim iCount As Long Dim i As Long 'to get the number of columns that you want to insert with an input box iCount = InputBox(Prompt:="How many column you want to add?") 'to get the column number where you want to insert the new column iCol = InputBox _ (Prompt:= _ "After which column you want to add new column? (Enter the column number)") 'loop to insert new column(s) For i = 1 To iCount Columns(iCol).EntireColumn.Insert Next i
Когда вы запускаете этот код, он просит вас ввести количество столбцов, которые вы хотите добавить, а затем номер столбца, в который вы хотите добавить все эти новые столбцы. Он использует цикл FOR (For Next) для ввода количества упомянутых вами столбцов.
Вставка столбцов на основе значений ячеек
Если вы хотите вставить столбцы на основе значения ячейки, вы можете использовать следующий код.
Dim iCol As Long Dim iCount As Long Dim i As Long iCount = Range("A1").Value iCol = Range("B1").Value For i = 1 To iCount Columns(iCol).EntireColumn.Insert Next i
Когда вы запускаете этот макрос, он берет количество столбцов из ячейки A1 и столбец, в который вы хотите добавить столбцы, из ячейки B1.
Вставить столбец без форматирования
Когда вы вставляете столбец, в котором столбец выше имеет определенное форматирование, в этом случае столбец также будет иметь это форматирование автоматически. И самый простой способ справиться с этой ситуацией — использовать четкие форматы. Рассмотрим следующий код.
Columns(7).EntireColumn.Insert Columns(7).ClearFormats
Когда вы запускаете приведенный выше код, он вставляет новый столбец перед седьмым столбцом. Теперь происходит следующее: когда вы вставляете столбец перед 7-м столбцом, этот новый столбец становится 7-м столбцом, а затем вторая строка кода очищает из него форматы.
Вставить скопированный столбец
Вы также можете использовать тот же метод, чтобы скопировать столбец и затем вставить его в другое место. См. следующий код.
Application.CutCopyMode = False With Worksheets("Data") .Columns(5).Copy .Columns(9).Insert Shift:=xlShiftDown End With Application.CutCopyMode = True