Fehler im Array

Bild

Betrifft: Fehler im Array
von: Burghard
Geschrieben am: 12.06.2015 10:17:03

Hallo,
ich habe ein eventuell für mich passendes Makro gefunden. Allerdings bekomme ich für eine Zeile den Laufzeitfehler "450". Es ist die Zeile:
arrSheets = Sheets(Array("TB1", "TB2", "TB4", "TB7", "TB10"))

Sub Übertrag()
'
' Übertrag Makro
  Dim wks As Worksheet, arrSheets
  arrSheets = Sheets(Array("TB1", "TB2", "TB4", "TB7", "TB10"))
   For Each wks In arrSheets
    With wks
      If .Cells(2, 1) <> "" Then
        .Range(.Cells(2, 1), .Cells(Rows.Count, 1).End(xlUp)).Copy
        Sheets("Gesamt").Cells(Rows.Count, 1).End(xlUp).Offset(1).PasteSpecial _
          Paste:=xlPasteValues
        .Range(.Cells(2, 1), .Cells(Rows.Count, 1).End(xlUp)).ClearContents
      End If
    End With
  Next
End Sub
Hilfe/Fehlerverbesserung wäre nett.
Grüße Burghard

Bild

Betrifft: AW: Fehler im Array
von: Rudi Maintaire
Geschrieben am: 12.06.2015 10:27:50
Hallo,

....
  arrSheets = Array("TB1", "TB2", "TB4", "TB7", "TB10")
   For Each wks In Sheets(arrSheets)
....

Gruß
Rudi

Bild

Betrifft: AW: Fehler im Array beseitigt
von: Burghard
Geschrieben am: 12.06.2015 11:16:34
Hallo Rudi,
danke für Deine Lösung. Funktioniert jetzt. Kannst Du mir aber noch weiterhelfen?
Ich habe festgestellt, dass das Makro nur die Spalte 1 der ausgewählten Tabellenblätter in das Tabellenblatt "Gesamt" kopiert. Ich hätte aber gerne, dass nicht nur die Spalte 1, sondern die ganze Zeile rüberkopiert wird. Hilfe wäre nett.
Grüße Burghard

Bild

Betrifft: AW: Fehler im Array beseitigt
von: Rudi Maintaire
Geschrieben am: 12.06.2015 11:21:21
Hallo,
.Range(.Cells(2, 1), .Cells(Rows.Count, 1).End(xlUp)).EntireRow.Copy
Gruß
Rudi

Bild

Betrifft: AW: Funktioniert
von: Burghard
Geschrieben am: 12.06.2015 12:19:46
Hallo Rudi,
vielen Dank für die schnelle Hilfe! Makro läuft wie gewünscht.
Grüße Burghard

Bild

Betrifft: AW: Fehler im Array
von: Daniel
Geschrieben am: 12.06.2015 11:04:27
Hi
da es sich bei Tabellenblättern um Objekte handelt, muss eine Variablenzuweisung immer mit SET erfolgen:

  Set arrSheets = Sheets(Array("TB1", "TB2", "TB4", "TB7", "TB10"))
   For Each wks In arrSheets

Gruß Daniel

Bild

Betrifft: AW: Fehler im Array beseitigt
von: Burghard
Geschrieben am: 12.06.2015 12:20:59
Hallo Daniel,
vielen Dank für Deine Lösung und die Erklärung! Makro funktioniert jetzt.
Grüße Burghard

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Fehler im Array"