Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1380to1384
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

For Each Schlife - Typen Unverträglich

For Each Schlife - Typen Unverträglich
29.09.2014 11:14:08
Rik
Hallo,
bei folgender Schleife kommt, nachdem sie einmal komplett durchgelaufen ist "Typen unverträglich"
   For Each ws In ActiveWorkbook.Sheets
If ws.name  "Tab1" And _
ws.name  "Tab2" Then
Debug.Print ws.name & " wurde gelöscht!!"
Application.DisplayAlerts = False
Sheets(ws.name).Delete
Application.DisplayAlerts = True
End If
Next ws
Das funktioniert auch alles soweit, es werden alle Tabellen gelöscht bis auf die zwei Ausnahmen und einem Diagramm.
Die gleiche Schleife habe ich auch noch in einem anderen Sub, dort läuft das ganze ohne Probleme, nur hier kommt die Meldung und im Debugger hast "ws" zu dem Zeitpunkt den Wert "Nothing".
Was kann ich dagegen tun?

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
For Each ws In ActiveWorkbook.WORKsheets
29.09.2014 11:22:36
{Boris}
VG; Boris

AW: For Each ws In ActiveWorkbook.WORKsheets
29.09.2014 11:27:41
Rik
Sollte da was stehen?

Ja, da steht WORKSheets nicht Sheets !
29.09.2014 11:32:47
Matthias
Hallo
WorkSheets statt Sheets
siehe Text im Betreff
Gruß Matthias

AW: Ja, da steht WORKSheets nicht Sheets !
29.09.2014 11:35:58
Rik
Oh, danke. Ich hab nicht in den Betreff geschaut, ob der sich geändert hat, habe vergeblich nach Text gesucht ;)
Jetzt funktioniert es auch, danke. Warum es dann bei dem Anderen Sub funktioniert ist mir natürlich schleierhaft.
Danke und vg
Rik

AW: Ja, da steht WORKSheets nicht Sheets !
29.09.2014 11:53:06
fcs
Hallo Rik,
das Problem wird die Deklaration der Variablen sein.
Wenn die Variable ws als Worksheet deklariert ist, dann funktioniert
For Each ws In ActiveWorkbook.Sheets
nicht in Arbeitsmappen mit Diagrammblättern, da Diagramm-Blätter nicht den Typ Worksheet haben.
Gibt es in einer Arbeitsmapppe nur Tabellenblätter, dann taucht das Typ-Problem nicht auf.
Wenn du sowohl Tabellenblätter als auch Diagrammblätter (also die Sheets) einer Arbeitsmappe in einer Schleife verarbeiten willst, dann muss die entsprechende Laufvariable als Object oder Variant deklariert sein.
Gruß
Franz

Anzeige
AW: Ja, da steht WORKSheets nicht Sheets !
29.09.2014 11:53:23
{Boris}
Hi,
die Sheets-Auflistung enthält ALLE Sheets - sowohl Worksheets als auch Diagramm-Sheets etc.
Wenn Du also eine Routine rund um WORKsheets schreibst, dann solltest Du auch nur die WORKsheets ansprechen.
VG, Boris

AW: Ja, da steht WORKSheets nicht Sheets !
29.09.2014 12:00:51
Rik
Hallo,
das Problem war ein Anderes.
Ich durchlaufe ganz am Anfang schon einmal die Funktion und vor der von mir hier angegebenen Schleife wird nach Diagrammblättern gesucht und diese werden gelöscht. Das sieht so aus:
   For Each d In ActiveWorkbook.Charts
Application.DisplayAlerts = False
d.Delete
Application.DisplayAlerts = True
Next

Später durchlaufe ich die Schleife in einer anderen Funktion nocheinmal, um Änderungen in die _ Sheets einzupflegen, jedoch befindet sich das Makro in einem anderen Workbook als dem aktiven und bevor dort

ActiveWorkbook.Charts
stand, stande dort

ThisWorkbook.Charts
aus diesem Grund wurde das Diagramm logischerweise nicht gelöscht.
Das passiert wenn man den Wald vor lauter Bäumen nicht mehr sieht.
Danke für Eure Hilfe.
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige