Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

mehrere nicht zusammenhängende Spalten löschen

Forumthread: mehrere nicht zusammenhängende Spalten löschen

mehrere nicht zusammenhängende Spalten löschen
01.03.2015 12:45:45
FrauHolle

Hallo,
ich hänge an einer Datei in der ich mehrere nicht zusammenhängende Spalten löschen möchte. Die zu löschenden Spalten werden aus dem ersten tabellensheet aus der ersten spalte ausgelesen (dort stehen untereinander z.b. "B", "M", etc.). ich setze so einen Hilfstring zusammen, der nachher dem Range-objekt übergeben wird. So weit so gut, aber beim selektieren des Range-objektes bekomme ich immer eine Fehlermeldung "Laufzeitfehler 1004 Anwendungs- oder objektdefinierter Fehler"....
hier mein code:
' Das Arbeitsblatt mit den Rohdaten kopieren!---------------------
Worksheets(2).Activate
ActiveSheet.Copy After:=Sheets(2)
Worksheets(3).Activate
ActiveSheet.Name = "Ergebnis"
'Die benannten Spalten löschen!-----------------------------------
Worksheets(1).Activate
cS = 1
zS = 2
work = ""
ActiveSheet.Cells(zS, cS).Activate
If ActiveCell.Value = "" Then
MsgBox "Keine zu löschenden Spalten angegeben!"
Else
cE = ActiveCell.Value
MsgBox cE
work = Chr(34) & cE & ":" & cE & Chr(34)
MsgBox work
zS = zS + 1
ActiveSheet.Cells(zS, cS).Activate
cE = ActiveCell.Value
MsgBox cE
End If
Do While cE <> ""
work = work & "," & Chr(34) & cE & ":" & cE & Chr(34)
MsgBox work
zS = zS + 1
ActiveSheet.Cells(zS, cS).Activate
cE = ActiveCell.Value
MsgBox cE
Loop
MsgBox "Keine weiteren zu löschenden Spalten angegeben!"
MsgBox work
Worksheets(3).Activate
ActiveSheet.Range(work).Select
Evtl. kann jemand helfen...?

Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: mehrere nicht zusammenhängende Spalten löschen
01.03.2015 13:01:35
daniel
Hi
Das Problem sind die Anführungszeichen, die du der Variablen Work in Form von Chr(34) hinzufügst.
Der Adressstring in der Range-Funktion (deine Variable Work) darf keine Anführungszeichen enthalten und sollte so aussehen:M:M,P:P,S:S
Gruß Daniel

Anzeige

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Mehrere nicht zusammenhängende Spalten in Excel löschen


Schritt-für-Schritt-Anleitung

Um mehrere nicht zusammenhängende Spalten in Excel zu löschen, kannst du den folgenden VBA-Code verwenden. Dieser Code liest die Spalten, die gelöscht werden sollen, aus einer Liste im ersten Tabellenblatt aus und entfernt sie im dritten Tabellenblatt.

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Füge ein neues Modul ein: Rechtsklick auf "VBAProject (DeineDatei.xlsx)", wähle Einfügen > Modul.
  3. Kopiere den folgenden Code in das Modul:
Sub LoescheMehrereSpalten()
    ' Das Arbeitsblatt mit den Rohdaten kopieren
    Worksheets(2).Activate
    ActiveSheet.Copy After:=Sheets(2)
    Worksheets(3).Activate
    ActiveSheet.Name = "Ergebnis"

    ' Die benannten Spalten löschen
    Worksheets(1).Activate
    Dim cS As Long, zS As Long, work As String, cE As String
    cS = 1
    zS = 2
    work = ""

    ActiveSheet.Cells(zS, cS).Activate
    If ActiveCell.Value = "" Then
        MsgBox "Keine zu löschenden Spalten angegeben!"
        Exit Sub
    End If

    Do
        cE = ActiveCell.Value
        If cE <> "" Then
            If work = "" Then
                work = cE & ":" & cE
            Else
                work = work & "," & cE & ":" & cE
            End If
            zS = zS + 1
            ActiveSheet.Cells(zS, cS).Activate
        Else
            Exit Do
        End If
    Loop

    If work = "" Then
        MsgBox "Keine weiteren zu löschenden Spalten angegeben!"
    Else
        Worksheets(3).Activate
        ActiveSheet.Range(work).Delete
        MsgBox "Die Spalten wurden erfolgreich gelöscht."
    End If
End Sub
  1. Schließe den VBA-Editor und führe das Makro aus, um die nicht zusammenhängenden Spalten zu löschen.

Häufige Fehler und Lösungen

Ein häufiges Problem, das beim Löschen mehrerer Spalten in Excel mit VBA auftritt, ist der Laufzeitfehler 1004. Dieser Fehler tritt oft auf, wenn der Adressstring für die Range-Objekte nicht korrekt formatiert ist.

  • Fehler: "Laufzeitfehler 1004 Anwendungs- oder objektdefinierter Fehler"
    • Lösung: Achte darauf, dass der String in der Variable work keine Anführungszeichen enthält. Der Adressstring sollte zum Beispiel so aussehen: M:M,P:P,S:S.

Alternative Methoden

Falls du kein VBA verwenden möchtest, kannst du auch die folgenden Methoden nutzen:

  1. Manuelles Löschen: Halte die STRG-Taste gedrückt und klicke auf die Überschrift der Spalten, die du löschen möchtest. Klicke dann mit der rechten Maustaste und wähle "Löschen".

  2. Filterfunktion: Verwende die Filterfunktion, um nur die Spalten anzuzeigen, die du löschen möchtest, und lösche sie dann manuell.

  3. Power Query: Importiere deine Daten in Power Query, um nicht benötigte Spalten zu entfernen, und lade die bereinigte Tabelle zurück nach Excel.


Praktische Beispiele

Angenommen, du hast in Spalte A die Spaltennamen, die gelöscht werden sollen, z.B.:

B
M
S

Wenn du den oben angegebenen VBA-Code ausführst, wird der Code die Spalten B, M und S im "Ergebnis" Blatt löschen. Stelle sicher, dass die Liste der zu löschenden Spalten in der ersten Spalte des ersten Arbeitsblatts steht.


Tipps für Profis

  • Nutze Option Explicit am Anfang deines VBA-Codes, um sicherzustellen, dass alle Variablen deklariert sind. Dies hilft, Fehler zu vermeiden.
  • Teste deinen Code immer zuerst an einer Kopie deiner Datei, um Datenverlust zu vermeiden.
  • Wenn du regelmäßig mehrere Spalten löschen musst, erwäge die Erstellung eines benutzerdefinierten Formulars, um die Spaltennamen einfacher eingeben zu können.

FAQ: Häufige Fragen

1. Kann ich den Code in Excel 2010 verwenden? Ja, der Code funktioniert in Excel 2010 und höheren Versionen.

2. Wie kann ich mehrere Spalten löschen, die nicht in einer Liste stehen? Wenn die Spalten nicht in einer Liste stehen, kannst du die Namen direkt im VBA-Code angeben, indem du sie in den work-String einfügst.

3. Gibt es eine Möglichkeit, gelöschte Spalten rückgängig zu machen? Wenn du Spalten gelöscht hast, kannst du dies sofort mit STRG + Z rückgängig machen, solange die Arbeitsmappe nicht gespeichert wurde.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige