Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Spalten löschen (mit Spaltennummern)

Spalten löschen (mit Spaltennummern)
Peter
Hallo
Ich möchte mit VBA Spalten löschen.
In der Variable lngSpalte steht die Spaltennummer (Beispielsweise 23)
Nun möchte ich nach Spaltennummer 23 insgesamt 10 Spalten löschen, als 24-33
Ich habe da Syntaxprobleme.
With ActiveWorkbook
.Sheets("Tabelle1").columns(lngSpalte + 1 & ":" & lngSpalte +10).Delete
End With
Was ist da falsch?
Danke für eine Antwort.
Gruss, Peter
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
Spaltenbuchstaben, Resize
29.06.2010 17:04:17
Erich
Hi Peter,
die Schreibweise Columns("x:y") geht nur mit den Spaltenbuchstaben. (bei Rows() mit Zahlen)
Vorschlag:
.Sheets("Tabelle1").Columns(lngSpalte + 1).Resize(, 10).Delete
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
AW: Spaltenbuchstaben, Resize
29.06.2010 17:12:23
Peter
Hallo Erich
Das hat auf Anhieb geklappt. Ganz herzlichen Dank.
Gruss, Peter
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Spalten in Excel mit VBA löschen


Schritt-für-Schritt-Anleitung

Um mit VBA mehrere Spalten in Excel zu löschen, kannst du die folgende Schritt-für-Schritt-Anleitung nutzen:

  1. Öffne den VBA-Editor:

    • Drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Erstelle ein neues Modul:

    • Klicke auf "Einfügen" und wähle "Modul".
  3. Füge den folgenden Code ein:

    Sub SpaltenLoeschen()
       Dim lngSpalte As Long
       lngSpalte = 23 ' Beispiel: Spaltennummer 23
    
       With ActiveWorkbook
           .Sheets("Tabelle1").Columns(lngSpalte + 1).Resize(, 10).Delete
       End With
    End Sub
  4. Schließe den VBA-Editor:

    • Drücke ALT + Q, um den Editor zu schließen.
  5. Führe das Makro aus:

    • Gehe zu Entwicklertools > Makros und wähle SpaltenLoeschen.

Häufige Fehler und Lösungen

  • Fehler: "Objekt nicht gefunden"

    • Lösung: Stelle sicher, dass das Arbeitsblatt "Tabelle1" existiert. Überprüfe auch die Schreibweise.
  • Fehler: "Ungültige Prozeduraufruf"

    • Lösung: Achte darauf, dass die Spaltennummer lngSpalte korrekt gesetzt ist und dass du nicht versuchst, mehr Spalten zu löschen, als im Arbeitsblatt vorhanden sind.

Alternative Methoden

Wenn du keine VBA-Programmierung nutzen möchtest, kannst du auch die folgenden Methoden verwenden:

  1. Manuelles Löschen:

    • Markiere die gewünschten Spalten mit der Maus, klicke mit der rechten Maustaste und wähle „Löschen“.
  2. Excel Makro:

    • Erstelle ein Excel-Makro, das die Löschoperation automatisiert, indem du die gleichen Schritte wie in der VBA-Anleitung ausführst, aber mit der Makro-Aufzeichnungsfunktion.

Praktische Beispiele

  • Beispiel 1: Lösche die Spalten 24 bis 33 in Tabelle1.

    Sub MehrereSpaltenLoeschen()
       Dim lngSpalte As Long
       lngSpalte = 24 ' Startspalte
    
       With ActiveWorkbook
           .Sheets("Tabelle1").Columns(lngSpalte & ":" & lngSpalte + 9).Delete
       End With
    End Sub
  • Beispiel 2: Lösche mehrere Spalten basierend auf einer Liste von Spaltennummern.

    Sub DynamischSpaltenLoeschen()
       Dim lngSpalte As Long
       Dim i As Long
    
       For i = 1 To 10
           lngSpalte = 23 + i
           ActiveWorkbook.Sheets("Tabelle1").Columns(lngSpalte).Delete
       Next i
    End Sub

Tipps für Profis

  • Verwendung von Arrays: Du kannst ein Array von Spaltennummern nutzen, um gezielt Spalten zu löschen.

  • Fehlerbehandlung: Implementiere Fehlerbehandlung in deinen VBA-Skripten, um unerwartete Abbrüche zu vermeiden.

  • Komplexe Löschoperationen: Bei komplexen Anforderungen, wie dem Löschen von Spalten basierend auf bestimmten Kriterien, kann es hilfreich sein, Schleifen und Bedingungen zu verwenden.


FAQ: Häufige Fragen

1. Wie lösche ich nur eine einzelne Spalte mit VBA?
Du kannst die folgende Zeile verwenden:

Sheets("Tabelle1").Columns(23).Delete

2. Kann ich mehrere nicht benachbarte Spalten löschen?
Ja, du kannst mehrere Spalten in einer Zeile löschen, indem du ihre Indizes angibst:

Sheets("Tabelle1").Columns("A,C,E").Delete

3. Ist es möglich, Spalten basierend auf ihrem Namen zu löschen?
Ja, du kannst die Spalten mit ihrem Namen ansprechen. Beispiel:

Sheets("Tabelle1").Columns("Spaltenname").Delete

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige