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

GetObject und Laufzeitfehler 40036

GetObject und Laufzeitfehler 40036
13.05.2014 14:13:42
MarcR
Hallo zusammen!
ich will mit folgendem Code auf ein Excel-Workbook mit GetObject zugreifen, ermitteln wie viele Tabellenblätter enthalten sind und für alle Tabellenblätter die letzte verwendete Spalte und Zeile ermitteln:
Set quelle = GetObject(sPath)
anzahlWks = quelle.Worksheets.Count
For i = 1 To anzahlWks
last_row = quelle.Worksheets(i).UsedRange.Rows.Count
last_column = quelle.Worksheets(i).UsedRange.Columns.Count
Leider wird dabei in der Zeile "last_row = quelle.Worksheets(i).UsedRange.Rows.Count"
der Laufzeitfehler 40036: "Anwendungs-oder objektorientierter Fehler" angezeigt. Ich erkenne den Fehler im Code allerdings nicht. Daher bitte ich euch um eure Hilfe. Danke schon einmal im Voraus!
MfG Marc

19
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: GetObject und Laufzeitfehler 40036
13.05.2014 14:26:51
Rudi
Hallo,
dann gibt es das Workbook sPath nicht.
Gruß
Rudi

AW: GetObject und Laufzeitfehler 40036
13.05.2014 14:48:33
MarcR
Hallo Rudi,
es muss das Workbook sPath geben, weil die Variable anzahlWks richtig bestimmt wird.
Gruß Marc

AW: GetObject und Laufzeitfehler 40036
13.05.2014 14:53:48
Rudi
Hallo,
stimmt. Außerdem hätt's bei GetObject schon gestreikt.
Bei mir klappt's.
Gruß
Rudi

Rückfrage
13.05.2014 15:26:56
Daniel
Hi
1. wie lautet der vollständige Fehlertext zu dem Fehler 40036?
2. ist jedes Blatt von dem Fehler betroffen oder nur einzelne?
hierbei musst du dir den Wert i anschauen und prüfen, ob dieser beim Fehler den Wert 1 oder einen höheren Wert hat.
Wenn i = 1 ist, solltet du prüfen, ob der Fehler nur beim ersten oder bei allen Tabellenblättern auftritt (Im Einzelstep-Modus den gelben Pfeil auf das NEXT ziehen und dann mit F8 die nächsten Schritte ausführen)
wenn nur bestimmte Blätter betroffen sind, solltest du dir die Blätter anschauen und versuchen herauszfinden, worin sie sich unterscheiden.
Die Wahrscheinlichkeit ist dann hoch, dass die Fehlerursache in einem dieser Unterschiede begründet liegt.
Gruß Daniel

Anzeige
AW: Rückfrage
13.05.2014 15:45:52
MarcR
hallo Daniel,
1. Laufzeitfehler 40036: "Anwendungs-oder objektorientierter Fehler". Mehr zeigt mir das Fehlerfenster leider nicht an!
2. das Makro bricht bereits für i = 1 ab. Ich werde aber die anderen Tabellenblätter überprüfen. Danke für den Tipp!
Gruß Marc

AW: Teste auch mal...
13.05.2014 16:10:53
Daniel
... eine Datei mit unbearbeiteten Leerblättern.
Gruß Daniel

AW: Teste auch mal...
14.05.2014 07:20:03
MarcR
Hallo Daniel,
wenn ich eine komplett unbearbeitete Mappe auswähle, klappt das Ganze. Sind die vorgesehenen Excel-Dateien möglicherweise beschädigt?
Gruß Marc

AW: Teste auch mal...
14.05.2014 07:51:17
Daniel
Ja, wäre eine Möglichkeit.
Kopiere mal die Inhalte in eine neue Datei und teste mit dieser.
Gruß Daniel

Anzeige
AW: GetObject und Laufzeitfehler 40036
13.05.2014 19:33:01
Ewald
Hallo,
frage vorher "Cells.Count" ab
quelle.Worksheets(i).UsedRange.Cells.Count
wenn > 1, kannst du auch die Zeilen und Spalten abfragen
Gruß Ewald

AW: Nachtrag
13.05.2014 20:01:54
Ewald
Hallo,
vielleicht noch eins, wie ist LastRow deklariert.
Gruß Ewald

AW: Nachtrag
14.05.2014 07:22:12
MarcR
Hallo Ewald,
Cells.Count bringt ebenfalls den gleichen Fehler. Last_row ist eine Integer-Variable.
Gruß Marc

AW: Nachtrag
14.05.2014 07:32:38
hary
Moin
Aendere mal Last_row in Long.
Integer geht nur bis: 32.767
gruss hary

AW: sry, bis 65.535
14.05.2014 07:37:34
gruss owt
.

AW: Deklaration
14.05.2014 08:12:27
Ewald
Hallo,
bei den neuen Dateiformaten (ab 2007) mußt du Long verwenden um sicher zu gehen, das hier kein Fehler auftritt.
Gruß Ewald

Anzeige
AW: auch beim alten Dateiformat ist LONG
14.05.2014 09:30:38
Daniel
für Zeilennummer-Variablen erforderlich, wenn alle Zellen benutzt werden können.
Gruß Daniel

AW: Nachtrag
14.05.2014 08:38:36
MarcR
Hallo hary,
hab ich bereits probiert. Keine Veränderung!
Gruß Marc

AW: Nachtrag
14.05.2014 09:24:43
Ewald
Hallo,
dann laß dir mal mit Debug.Print die Daten im Direktfenster ausgeben
Dateinamen
Anzahl der Tabellen
Name der ersten Tabelle
UsedRabge.Address
usw.
dann sollte der Fehler sichtbar werden
Gruß Ewald

AW: Nachtrag
14.05.2014 09:48:53
MarcR
Hallo Hary,
danke für den Tipp! Werd ich machen!
Gruß Marc

AW: Nachtrag
14.05.2014 13:00:08
MarcR
Hallo,
habe mittlerweile den Fehler gefunden. Die Mappe die ich versucht habe zu öffnen, war eine .xlsm - Datei, die beim Öffnen ihre Makros abgerufen hat. GetOBject erwartet aber ein passives Objekt. Die abgeänderten Codezeilen hier:
Set quelle = Workbooks.Open(Filename:=sPath, UpdateLinks:=False, ReadOnly:=True)
anzahlWks = quelle.Worksheets.Count
For i = 1 To anzahlWks
last_row = quelle.Worksheets(i).UsedRange.Rows.Count
last_column = quelle.Worksheets(i).UsedRange.Columns.Count
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige