VBA: Alle oder nur EIN Worksheet referenzieren
12.06.2013 14:10:29
NoNet
ich stehe gerade etwas auf dem Schlauch :
In Abhängigkeit des Wertes einer Variablen möchte ich einen VBA-Code entweder für ALLE oder nur für das aktuelle Tabellnblatt durchlaufen.
Dazu möchte ich eine Objekt-Variable wsColl verwenden, der ich entweder ALLE Worksheets zuweise oder eben nur das aktuelle Worksheet.
Leider habe ich keinen Plan, mit welchem TYP ich diese Variable deklarieren muss !?!?
Folgenden exemplarischen Code habe ich ausprobiert (die globale Variable blnAllWS) wird ausserhalb mit dem Wert TRUE oder FALSE befüllt !) :
Sub Test()
Dim ws As Worksheet, wsColl 'welchen Typ ?
If blnAllWS Then
Set wsColl = ActiveWorkbook.Worksheets
Else
Set wsColl = ActiveSheet
End If
For Each ws In wsColl
MsgBox ws.Name
Next
End Sub
Wenn wsColl als Variant oder Object deklariert wird, funktioniert der Code nur, wenn blnAllWS = TRUE ist (also alle WS durchlaufen werden).Ansonsten erscheint in der Zeile "For Each..." der Fehler
Hier ein paar weitere Deklarationstypen und das Ergebnis :
Vielen Dank für euren Denkanstoss,
Gruß, NoNet