Problem mit For Each .. in ActiveWorkbook.Workshee
21.08.2006 11:06:50
Peter
Mit folgendem Code lösche ich in meinem Workbook nicht notwendige Worksheets, und zwar, wenn in Zelle AA1 "WSLöschen" steht.
Dies funktioniert auch, mit Ausnahme des ersten Workbooks. Obwohl dort in Zelle AA1 "WSLöschen" steht (Gross-/Keinschreibung wie im Code), wird dieses Worksheet, das eine "normale" Tabelle ist, nicht gelöscht.
Hat jemand eine Idee, weshalb das so sein könnte?
Danke, Peter
Sub WS_löschen()
' alle Worksheets in einer Tabelle löschen, die eine Bedingung erfüllen
' i.d.R. entspricht ein bestimmter Range einem bestimmten Wert
Dim objWorksheet As Worksheet, objSheet As Worksheet
Set objSheet = ActiveSheet
Application.ScreenUpdating = False
For Each objWorksheet In ActiveWorkbook.Worksheets
Application.DisplayAlerts = False 'damit das Löschen der Tabellen
'nicht bestätigt werden muss
With objWorksheet
If .Range("AA1") = "WSLöschen" Then
.Delete
End If
End With
Next
Application.DisplayAlerts = True
On Error GoTo ERRHDL
objSheet.Activate
Application.ScreenUpdating = True
Exit Sub
ERRHDL:
Sheets(1).Activate
Application.ScreenUpdating = True
End Sub