Wstaw kolumny VBA

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 wiele odniesień do 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 to łatwy klawisz skrótu w arkuszu roboczym, naciskając Ctrl +, ale co powiesz na wstawienie nowej kolumny za pomocą kodu VBA. W tym artykule na temat „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ć, bez informowania, 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 za kolumną 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łowie .

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”). Enter 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, który 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 Pochodzenie]: To będzie określić format dla nowo wstawionej kolumny. Czy potrzebujesz formatu z lewej strony kolumny, czy z powyższych komórek. Tutaj możemy użyć dwóch opcji „xlFormatFromLeftOrAbove” i „xlFormatFromRightOrBelow”.

Poniżej znajduje się przykładowy kod dla Ciebie.

 Sub ColumnInsert_Example1 () Range („B: B”). Insert Shift: = xlToRight, Copyorigin: = xlFormatFromLeftOrAbove End Sub 

Przykład # 4 - Wstaw kolumny za pomocą właściwości COLUMNS w VBA

Widzieliśmy, jak wstawiać kolumny VBA za pomocą obiektu RANGE, teraz pokażemy, że możemy wstawiać kolumny za pomocą właściwości „COLUMNS”.

Otwórz właściwość COLUMNS.

Kod:

 Sub ColumnInsert_Example2 () Columns (End Sub 

W tym miejscu możemy określić kolumnę na dwa sposoby. Jeden używa jak zwykle odniesień alfabetycznych, a drugi używa numerów kolumn.

If you want to insert the column after the 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 to 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. Below code it the 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 

This will insert the column like this.

Example #6 – Insert Column Based on Cell Value

We can also insert a column based on cell value as well. For example, look at the below data.

Here I want to insert the column if the first-row cell value is “Year” and my data should like this after inserting new columns.

Use the below code to perform this task.

Code:

 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 

You can download this VBA Insert Columns Excel here. VBA Insert Columns Excel Template