Habe eine Exceltabelle. In den Spalten K bis x (Variabel) stehen Informationen. Ich möchte Hinter jeden Spalte eine leere Spalte per VBA einfügen.?

...komplette Frage anzeigen

1 Antwort

Sub SpaltenEinfuegen()
  Const K = 11
  Dim i, x As Integer
  x = 20: If x < K Then Exit Sub
  Application.CutCopyMode = False
  For i = K + 1 To 2 * x - K + 1 Step 2 
    Columns(i).Insert Shift:=xlToLeft
  Next
End Sub

Die meisten Befehle kriegt man mit dem Makrorekorder heraus. Nur das mit dem Laufindex war etwas Fummelarbeit.

Im Code wird von Spalte K bis Spalte x hinter jeder Spalte eine weitere, leere Spalte eingefügt.

x kannst du dir mittels Range() aus den Sheet noch lesen.

Antwort bewerten Vielen Dank für Deine Bewertung
Katjes1982 31.08.2016, 10:55

Hey,

vielen vielen vielen Dank!! Klasse!!
Ja mit dem Makrorekorder habe ich "Text in Spalten" schon umgesetzt, nur eben das Problem mit dem Überschreiben der Folgespalte gehabt... daher wollte ich es auf den Weg lösen.

Und was soll ich sagen? Klappt EINWANDFREI :)

Danke nochmal!

1
PWolff 31.08.2016, 11:55

Bei Löschungen und Einfügungen, die sich auf einen Index beziehen, lasse ich den Index grundsätzlich von oben nach unten laufen ("Step -1" bzw. "i--"), dann habe ich keine Probleme damit, dass sich die folgenden Indizes während der Schleifenabarbeitung ändern.

2

Was möchtest Du wissen?