Wie füge ich spalten mit vba ein?
In diesem Tutorial erfahren Sie, wie Sie eine Spalte mithilfe von VBA-Code in Excel einfügen. Wir werden auch untersuchen, welche verschiedenen Möglichkeiten es gibt, hierfür ein Makro zu schreiben.
Fügen Sie mit VBA eine einzelne Spalte ein
Um eine Spalte mit VBA-Code einzufügen, müssen Sie die Eigenschaft „Entire Column“ mit der Methode „Insert“ verwenden. Mit der Eigenschaft „Gesamte Spalte“ können Sie mithilfe einer Zelle auf die gesamte Spalte verweisen und dann eine neue Spalte einfügen. Standardmäßig wird eine Spalte vor der von Ihnen erwähnten Zelle eingefügt.
- Geben Sie zunächst eine Zelle mithilfe des Bereichsobjekts an.
- Geben Sie nun einen Punkt (.) ein, um die Liste der Eigenschaften und Methoden zu erhalten.
- Wählen Sie anschließend die Eigenschaft „Gesamte Spalte“ aus oder geben Sie sie ein.
- Geben Sie am Ende erneut einen Punkt (.) ein und wählen Sie die Methode „Einfügen“ oder geben Sie sie ein.
Range("A1").EntireColumn.Insert
Ihr Code ist hier bereit, um eine Spalte einzufügen. Wenn Sie nun diesen Code ausführen, fügt er sofort eine neue Spalte vor Spalte A ein.
Fügen Sie mehrere Spalten ein
Es gibt zwei Möglichkeiten, mehrere Spalten in eine Tabelle einzufügen, die ich gefunden habe. Die erste ist die gleiche Einfügemethode, die wir im obigen Beispiel verwendet haben. Dabei müssen Sie einen Spaltenbereich angeben, dessen Nummer der Nummer der Spalte entspricht, die Sie einfügen möchten.
Angenommen, Sie möchten nach Spalte C fünf Spalten einfügen, falls Sie Code wie diesen verwenden können.
Range("C:G").EntireColumn.Insert
Ehrlich gesagt fand ich diese Methode nicht sehr nützlich, da man den Bereich ändern muss, wenn man den Code selbst ändern möchte. Hier ist also die zweite Methode.
'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
Wenn Sie diesen Code ausführen, werden Sie aufgefordert, die Anzahl der Spalten einzugeben, die Sie hinzufügen möchten, und dann die Spaltennummer, in der Sie alle diese neuen Spalten hinzufügen möchten. Es verwendet eine FOR-Schleife (For Next) , um die Anzahl der von Ihnen genannten Spalten einzugeben.
Fügen Sie Spalten basierend auf Zellwerten ein
Wenn Sie Spalten basierend auf einem Zellenwert einfügen möchten, können Sie den folgenden Code verwenden.
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
Wenn Sie dieses Makro ausführen, übernimmt es die Anzahl der Spalten aus Zelle A1 und die Spalte, zu der Sie Spalten hinzufügen möchten, aus Zelle B1.
Fügen Sie eine Spalte ohne Formatierung ein
Wenn Sie eine Spalte einfügen, bei der die darüber liegende Spalte eine bestimmte Formatierung aufweist, weist die Spalte in diesem Fall automatisch auch diese Formatierung auf. Und der einfachste Weg, mit dieser Situation umzugehen, ist die Verwendung klarer Formate. Betrachten Sie den folgenden Code.
Columns(7).EntireColumn.Insert Columns(7).ClearFormats
Wenn Sie den obigen Code ausführen, wird vor der 7. Spalte eine neue Spalte eingefügt. Wenn Sie nun eine Spalte vor der 7. Spalte einfügen, wird diese neue Spalte zur 7. Spalte und die zweite Codezeile löscht dann die Formate daraus.
Fügen Sie eine kopierte Spalte ein
Sie können die gleiche Methode auch verwenden, um eine Spalte zu kopieren und sie dann an anderer Stelle einzufügen. Siehe den folgenden Code.
Application.CutCopyMode = False With Worksheets("Data") .Columns(5).Copy .Columns(9).Insert Shift:=xlShiftDown End With Application.CutCopyMode = True