Zwykle w arkuszu programu Excel mamy dwie różne metody dodawania lub wstawiania kolumn, jedna jest skrótem klawiaturowym, a druga za pomocą metody kliknięcia prawym przyciskiem myszy i wstawiania, ale w VBA musimy użyć polecenia wstawiania i całej instrukcji kolumny, aby dodać dowolną kolumnę do siebie. Sztuczka polega na tym, że jeśli musimy wstawić pojedynczą kolumnę, podajemy odwołanie do jednej kolumny, ale dla wielu kolumn podajemy odwołania do wielu kolumn.
Wstaw kolumny w programie Excel za pomocą VBA
W ramach kodu VBA może być konieczne wstawienie kilku kolumn w naszym arkuszu danych, aby dopasować je do naszych potrzeb. Wstawianie kolumny jest łatwym klawiszem skrótu w arkuszu, naciskając Ctrl +, ale co powiesz na wstawienie nowej kolumny za pomocą kodu VBA. W tym artykule „VBA Insert Column” pokażemy Ci proces dodawania kolumn w programie Excel i pokażemy przykłady różnych scenariuszy.

Jak wstawić kolumny w arkuszu programu Excel za pomocą VBA?
Możemy wstawiać kolumny w VBA za pomocą właściwości COLUMNS i obiektu RANGE. Musisz wiedzieć, dlaczego potrzebujemy kolumn i obiektów zakresu, aby wstawić nową kolumnę.
Aby wstawić nową kolumnę, musimy określić, po której kolumnie musimy wstawić, nie mówiąc, po której kolumnie musimy wstawić, w jaki sposób VBA może zrozumieć logikę.
Na przykład, jeśli chcesz wstawić kolumnę po kolumnie B, możesz skonstruować kod w ten sposób.
Kolumny („C”)
Uwaga: powód, dla którego użyłem C, aby wstawić kolumnę po, ponieważ wybrana komórka zostanie przesunięta na prawą stronę.
Po określeniu kolumn musimy uzyskać dostęp do właściwości „Cała kolumna”.
Kolumny („C”). Cała kolumna
Następnie musimy wybrać metodę „Wstaw”.
Kolumny („C”). Cała kolumna. Wstaw
Spowoduje to wstawienie kolumny po kolumnie C, a istniejąca kolumna C zostanie przeniesiona do D.
Przykład # 1 - Wstaw kolumny za pomocą obiektu Range w VBA
Teraz spójrz na sposób wstawiania kolumny za pomocą obiektu RANGE. W tym celu rozważ poniższe dane jako przykład.

Teraz chcę wstawić VBA kolumnę po kolumnie A, wykonaj poniższe kroki, aby skonstruować kod.
Krok 1: Rozpocznij procedurę podrzędną.
Krok 2: Otwórz obiekt Range .
Kod:
Sub ColumnInsert_Example1 () Range (End Sub

Krok 3: Teraz wspomnij o kolumnie w cudzysłowach .
Kod:
Sub ColumnInsert_Example1 () Zakres („B: B”) End Sub

Krok 4: Teraz wybierz właściwość Cała kolumna .
Kod:
Sub ColumnInsert_Example1 () Range („B: B”). Ent End Sub

Krok 5: Po wybraniu właściwości Cała kolumna wybierz metodę „Wstaw” .
Kod:
Sub ColumnInsert_Example1 () Range („B: B”). EntireColumn.ins End Sub

Teraz twój kod wygląda tak.
Kod:
Sub ColumnInsert_Example1 () Range („B: B”). EntireColumn.Insert End Sub
Uruchom kod. Wstawi nową kolumnę B.

Przykład # 2 - Wstaw wiele kolumn
Na przykład, jeśli chcesz wstawić dwie nowe kolumny po kolumnie A, musimy wspomnieć o dwóch adresach kolumn.
Kod:
Sub ColumnInsert_Example1 () Range („B: C”). EntireColumn.Insert End Sub
Powyższy kod wstawi dwie kolumny po kolumnie A.

Przykład # 3 - Tylko z metodą „Wstaw”
Możemy wstawić nową kolumnę, używając jedynej metody „Wstaw” bez dostępu do właściwości Cała kolumna. W tym celu przyjrzyjmy się składni metody „wstaw”.
Expression.Insert ((Shift), (Copy Origin))
(Shift): Kiedy wstawiamy nową kolumnę, czy potrzebujemy przesunąć kolumny w prawą stronę, czy też w dół w przypadku wierszy. Tutaj możemy użyć dwóch opcji, „xlToRight” i „xlDownTo”
(Copy Origin): This will specify the format for the newly inserted column. Whether you need the format from the left side of the column or from the above cells. Here we can use two options “xlFormatFromLeftOrAbove” and “xlFormatFromRightOrBelow”.
Below is the example code for you.
Sub ColumnInsert_Example1() Range("B:B").Insert Shift:=xlToRight, Copyorigin:=xlFormatFromLeftOrAbove End Sub
Example #4 - Insert Columns Using COLUMNS Property in VBA
We have seen how to VBA insert columns using the RANGE object; now, we will show we can insert columns using the “COLUMNS” property.
Open the COLUMNS property.
Code:
Sub ColumnInsert_Example2() Columns( End Sub

We can specify the column in two ways here. One is using as usual alphabetic references, and another one is using column numbers.
If you want to insert the column after column A, then the code will be COLUMNS(“B”). If you are using numerical reference, then the code will be COLUMNS(2).
Code:
Sub ColumnInsert_Example2() Columns("B"). End Sub

Now the problem for you arises because when we use COLUMNS property, we don’t get to access the IntelliSense list.
Code:
Sub ColumnInsert_Example2() Columns("B").Entir End Sub

Here we need to sure of what we are doing. So this is the reason I have showed you the RANGE object first.
Code:
Sub ColumnInsert_Example2() Columns("B:B").EntireColumn.Insert End Sub
Example #5 - Insert Alternative Columns
Assume you have the data like the below image.

If you want to insert new columns after every alternate row, then we need to use VBA loops. The below code it tailor-made the code for you.
Code:
Sub ColumnInsert_Example3 () Dim k As Integer Columns (2). Select For k = 2 To 8 ActiveCell.EntireColumn.Insert ActiveCell.Offset (0, 2). Select Next k End Sub
Spowoduje to wstawienie kolumny w ten sposób.

Przykład # 6 - Wstaw kolumnę na podstawie wartości komórki
Możemy również wstawić kolumnę na podstawie wartości komórki. Na przykład spójrz na poniższe dane.

Tutaj chcę wstawić kolumnę, jeśli wartość komórki w pierwszym wierszu to „Rok”, a moje dane powinny wyglądać tak po wstawieniu nowych kolumn.

Użyj poniższego kodu, aby wykonać to zadanie.
Kod:
Sub ColumnInsert_Example4 () Dim k As Integer Dim x As Integer x = 2 For k = 2 to 12 If Cells (1, x) .Value = "Year" Then Cells (1, x) .EntireColumn.Insert x = x + 1 End If x = x + 1 Next k End Sub
Możesz pobrać ten VBA Insert Columns Excel tutaj. VBA Wstaw kolumny Szablon programu Excel