For Each von anderem Sheet --> Error 1004

Hallo

Weiss jemand gerade wieso die Fehlermeldung „Run-Time“ Error 1004 erscheint ?

For i = 1 To SpaC
 j = 0
 For Each x In Worksheets("Sheet1").Range(Cells(4, i), Cells(ZeiC, i)) 'hier wird der Fehler markiert !
 If x.Value = "x" Then j = j + 1
 Next x
 Worksheets("System").Cells(i, 2) = j
Next

Der Fehler tritt nur auf, wenn ich auf einem anderen Sheet als Sheet1 bin. Auf Sheet1… läuft alles sauber.

Hi snetto

hilft es, die äußere For-Schleife mit "next i! abzuschließen?

M.

Hallo

Weiss jemand gerade wieso die Fehlermeldung „Run-Time“ Error
1004 erscheint ?

Der Fehler tritt nur auf, wenn ich auf einem anderen Sheet als
Sheet1 bin. Auf Sheet1… läuft alles sauber.

hallo Snetto,

probier’s mal so:

With Worksheets("Sheet1")
...
For Each x in .Range(.Cells(4, i), .Cells(ZeiC, i)) 
...
End With

ungetestet.

Außerdem darf ZeiC natürlich nicht Null sein.

Gruß, Andreas

Hallo Andreas

probier’s mal so:

With Worksheets(„Sheet1“)

For Each x in .Range(.Cells(4, i), .Cells(ZeiC, i))

End With

genau die gleiche Fehlermeldung !

Hi Markus

hilft es, die äußere For-Schleife mit "next i! abzuschließen?

Leider liegt es nicht an dem !

Gruss
Snetto

Hast du mal überpüft, ob die Variable ZeiC einen gültigen Wert hat?

Wird die Variable irgendwo initialisiert? Wird sie irgendwo anders in Code verändert?

Hast du mal überpüft, ob die Variable ZeiC einen gültigen Wert
hat?

Sie hat mit Sicherheit einen gültigen Wert.

Wird die Variable irgendwo initialisiert? Wird sie irgendwo
anders in Code verändert?

Sie wird richtig deklariert, zugewiesen und nicht verändert.

Es läuft ja, wenn ich auf „Sheet1“ bin.

Gruss

Hi,

scheinbar kann man mit cells() in Verbindung mit Range nur dann auf die Zellwerte zugreifen, wenn man in dem Blatt ist, in dem sich Range befindet.

Wenn du es so machst:

For Each x In Worksheets(„Sheet1“).Range(Cells(4, i).Address & „:“ & Cells(3, i).Address)

erstellst du aus den Zelladressen die Bereichsadresse und es funktioniert.

Hi

For Each x In Worksheets(„Sheet1“).Range(Cells(4, i).Address &
„:“ & Cells(3, i).Address)

Ja, genau das funktioniert !!

Hmm, komische Lösung aber es geht :smile:

Danke