Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1584to1588
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

Laufzeitfehler 1004 / Wechsel Tabellenblatt

Laufzeitfehler 1004 / Wechsel Tabellenblatt
18.10.2017 10:37:11
Alex
Hallo allerseits,
ich habe folgenden Code:
Option Explicit
Sub Import()
Dim pfad_zeile_oben As Integer
Dim pfad_spalte As Integer
Dim nummer as Integer
Dim wkb As Workbook
Dim thiswkb As Workbook
Set thiswkb = ThisWorkbook
pfad_zeile_oben = 2
pfad_spalte = 3
thiswkb.Sheets("Input").Cells(pfad_zeile_oben, pfad_spalte).Select
Selection.CurrentRegion.Rows.Count
End Sub
Meine Arbeitsmappe enthält zwei Tabellenblätter (Input und Input_2).
Befinde ich mich im Blatt "Input", so läuft das Makro problemlos durch.
Befinde ich mich im Blatt "Input_2", so wird in der vorvorletzten Zeile (thiswkb.Sheets("Input").Cells(pfad_zeile_oben, pfad_spalte).Select) eine Fehlermeldung (Laufzeitfehler 1004: Die Select-Methode des Range-Objektes konnte nicht ausgeführt werden) ausgegeben. Anscheinend hat Excel ein Problem damit, das Arbeitsblatt zu wechseln.
Was mache ich hier falsch?
Vielen Dank und viele Grüße
Alex
PS: Ich habe eine Lösung des Problems (einfach Sheets("Input").Activate. Es wundert mich aber, warum obige Methode nicht funktioniert.

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Laufzeitfehler 1004 / Wechsel Tabellenblatt
18.10.2017 10:42:37
yummi
Hallo Alex,
erstmal ist ein select in den seltensten Fällen nötig.
Aber wen ndu schon unbedingt selektieren willst fehlt dir nooch ein
thiswkb.Sheets("Input").select
nach der pfad_spalte Zeile
Grund ist: Du selektiuerst eine Zelle auf dem Tabellenblatt Input. Das geht aber nur wenn du vorher das Tabellenblatt selectest.
Gib mal ein:
pfad_zeile_oben = 2
pfad_spalte = 3
msgbox thiswkb.Sheets("Input").Cells(pfad_zeile_oben, pfad_spalte).CurrentRegion.Rows.Count
das geht immer, egal auf welchem Tabelenblatt du dich befindest.
Gruß
yummi
AW: Laufzeitfehler 1004 / Wechsel Tabellenblatt
18.10.2017 10:53:24
Alex
Hallo yummi,
vielen Dank für deine schnelle Antwort. So funktioniert es.
Aus Interesse: Es wundert mich, warum dann dein Befehl mit der MsgBox funktioniert. Also anscheinend wird der Wert ja richtig ermittelt, also weiß das Makro ja, in welchem Arbeitsblatt es suchen und auswählen muss. Und VBA bzw. der Editor (sorry, ich kenne die IT-Fachbegriffe hier nicht) kann ja mit dem Wert dennoch arbeiten, obwohl ich das Blatt vorher nicht ausgewählt habe.
Das finde ich verwirrend....
Und, falls du/jemand anderes Zeit hat, wie kann ich das Select in diesem Fall hier umgehen?
Vielen Dank und viele Grüße
Alex
Anzeige
AW: Laufzeitfehler 1004 / Wechsel Tabellenblatt
18.10.2017 11:08:23
yummi
Hallo Alex,
ein Beispiel:
hole aus dem Zimmer3 in Haus 5 etwas (ohne select)
oder
gehe nach haus 5
gehe in zimmer 3
hole etwas (so mit select)
das select vermeiden kannst du genau so wie ich geschrieben habe, anstatt der msgbox kannst du es eiern Variablen zuweisen oder den Wert in eien Zelle schreiben
thiswkb.Sheets("Input").Cells(1,1).value = thiswkb.Sheets("Input").Cells(pfad_zeile_oben, pfad_spalte).CurrentRegion.Rows.Count
Gruß
yummi
AW: Laufzeitfehler 1004 / Wechsel Tabellenblatt
18.10.2017 10:53:38
Daniel
Hi
Select ist halt so programmiert, dass es nur ein Objekt selektieren kann, welches auf dem gerade aktiven Blatt liegt.
wenn du eine Zelle auf einem anderen Blatt direkt selektieren willst, dann geht das mit Application.Goto:
application.goto thiswkb.Sheets("Input").Cells(pfad_zeile_oben, pfad_spalte)
aber wie yummi dir ja schon geschrieben hat, diese Selektion der Zellen ist unnötig, weil man die Befehle auch direkt mit den Zellen ausführen kann ohne sie vorher zu selektieren.
das Selektieren macht nicht nur die Ausführung des Codes wesentlich langsamer, sondern auch den Code länger, unübersichtlicher, und fehleranfälliger.
Gruß Daniel
Anzeige
AW: Laufzeitfehler 1004 / Wechsel Tabellenblatt
18.10.2017 10:56:29
Alex
Hallo Daniel,
vielen Dank! Das hilft mir sehr weiter.
Grüße
Alex

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige