Microsoft Excel

Herbers Excel/VBA-Archiv

Laufzeitfehler 9 bei Array Select


Betrifft: Laufzeitfehler 9 bei Array Select von: Erwin
Geschrieben am: 21.03.2018 11:19:43

Hi,
zum Gruppieren von Excel-Tabellenblättern habe ich folgenden Code geschrieben:

Sub Gruppierung_K()
Dim Liste As Variant
Dim ListeKompl As Variant
Dim ListeArr()
ListeArr = Array()
Dim TabName As String
Dim m As Integer
Dim Zaehler As Integer
For m = 1 To Worksheets.Count
TabName = Worksheets(m).Name
TabName = Right(TabName, 2)
    If TabName Like " K" Then
        Liste = Worksheets(m).Name
        ListeKompl = ListeKompl & Chr(34) & Liste & Chr(34) & ", "
        Zaehler = Zaehler + 1
     End If
Next m
ListeKompl = Left(ListeKompl, Len(ListeKompl) - 2)
ListeArr = Array(ListeKompl)
Sheets(ListeArr).Select
End Sub
Die letzte Zeile Sheets(ListeArr).Select führt zum Laufzeitfehler 9.
Wenn ich Select mit dem Inhalt der Variablen ListeKompl ausführe funzt es.
Wie komme ich weiter?

  

Betrifft: AW: Laufzeitfehler 9 bei Array Select von: ChrisL
Geschrieben am: 21.03.2018 11:29:18

Hi Erwin

So?

Sub t()
Dim ws As Worksheet, i As Integer

For Each ws In ThisWorkbook.Worksheets
    If Right(ws.Name, 2) Like " K" Then
        If i = 0 Then
            ReDim ar(0)
        Else
            ReDim Preserve ar(i)
        End If
        ar(i) = ws.Name
        i = i + 1
    End If
Next ws

Sheets(ar).Select
End Sub
cu
Chris


  

Betrifft: AW: Laufzeitfehler 9 bei Array Select von: Daniel
Geschrieben am: 21.03.2018 11:38:01

Hi

da erzeugt du aber nicht das gewünschte Array.
du meinst wahrscheinlich:

ListeArr = Split(ListeKompl, ", ")
Wobei ich hier die Selektion der Blätter direkt in der Schleife machen würde.
hierzu setzt man beim Selektieren den zweiten Parameter = FALSE
dann wird das neu selektierte Blatt der bestehenden Blattselektion hinzugefügt.

das ganze lässt sich damit etwas kürzer gestalten:
Sub Gruppierung_K()
Dim SelArt As Boolean
Dim m As Integer
Dim Zaehler As Integer
SelArt = True
For m = 1 To Worksheets.Count
    If Worksheets(m).Name Like "* K" Then
        Worksheets(m).Select SelArt
        SelArt = False
        Zaehler = Zaehler + 1
     End If
Next m
End Sub
Gruß Daniel


  

Betrifft: AW: Laufzeitfehler 9 bei Array Select von: Erwin
Geschrieben am: 21.03.2018 11:53:32

Super Jungs,
jetzt weiß ich was falsch war und wie es vieeel einfacher geht.
Danke!!!:-)
Mfg Erwin


Beiträge aus dem Excel-Forum zum Thema "Laufzeitfehler 9 bei Array Select"