Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Tomaten auf den Augen

Forumthread: Tomaten auf den Augen

Tomaten auf den Augen
17.02.2017 15:51:31
Dennis
Hallo zusammen,
habe folgenden Code, der mir den Fehlercode "Run time error 1004, application-defined or object-defined error" liefert

Sub Kontrollblätter_drucken()
Dim i As Integer
Dim Blatt As Variant
For i = 1 To 25
Blatt = Worksheets("Sheet1").Range(Cells(i + 4, 1))
Next
End Sub

Ersetzte ich Range(Cells(i + 4, 1)) durch Range("A5") funktioniert die Schleife. Erkenne leider meinen Fehler nicht. Kann mir jemand nen Wink geben.
Danke!
Anzeige

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

Betreff
Datum
Anwender
Anzeige
Ein "Set" fehlt vor dem Blatt in der Schleife owT
17.02.2017 15:53:58
Martin
owT
AW: Tomaten auf den Augen
17.02.2017 15:58:56
ChrisL
Hi Dennis
Ich vermute...
Dim Blatt As String
Blatt = Worksheets("Sheet1").Range(Worksheets("Sheet1").Cells(i + 4, 1))
oder
Dim Blatt As String
Blatt = Worksheets("Sheet1").Cells(i + 4, 1)
...abhängig vom Zelleninhalt... oder als Range...
Dim Blatt As Range
Set Blatt = Worksheets("Sheet1").Cells(i + 4, 1)
cu
Chris
Anzeige
AW: Tomaten auf den Augen
17.02.2017 16:01:57
ChrisL
Noch eine Variante...
Dim Blatt As Worksheet
Set Blatt = Worksheets(Worksheets("Sheet1").Cells(i + 4, 1))
cu
Chris
AW: Tomaten auf den Augen
17.02.2017 16:02:02
Daniel
Hi
der Range-Befehl hat zwei Varianten:
1. Variante: EIN Parameter.
hier ist der Parameter ein Text, welcher der Adresse eines Zellbereichs entspricht
2. Variante: ZWEI Parameter
hier sind die beiden Parameter zwei Zellen oder andere Range-Objekte, die Range-Funktion spannt dann den Zellbereich über diese beiden Zellen als Eck-Zellen des Bereichs auf
du verwendest hier die erste Variante und VBA erwartet einen Text als Parameter und keine Zelle.
dh das Cells(i + 4, 1) wird zu Cells(i + 4, 1).Value ergänzt und du versuchst die Zelle anzusprechen, deren Adresse in der Zelle Cells(i + 4, 1) als Text steht, dh in dieser Zelle müssste ein Text in der Art "A1" oder "AX99" stehen
wenn du stattdessen direkt die Zelle Cells(i + 4, 1) ansprechen willst, müsstest du das hier schreiben:
Blatt = Worksheets("Sheet1").Range(Cells(i + 4, 1).Address).Value
bei einer Einzelzelle geht man aber nicht über Range, sondern direkt über Cells
Blatt = Worksheets("Sheet1").Cells(i + 4, 1)
Gruß Daniel
Anzeige
AW: Tomaten auf den Augen
17.02.2017 16:12:36
Dennis
Top, vielen Dank für die Erklärung!
Funktioniert jetzt.
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige