Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1272to1276
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

Array mit Range(Cells(y,x),Cells(a,b)) ?

Array mit Range(Cells(y,x),Cells(a,b)) ?
Sebastian
Hallo Zusammen,
Ich habe ein seltsames Phänomen, das mich in der Programmierung zuerst irriterte und jetzt weiß ich zwar, wie ich es umgehen kann. Aber ich möchte wissen, warum es nicht funktioiert...
Wenn ich ein Array auf einem anderen Worksheet auslesen möchte und das mit Array-Formeln versuche gibt es bei dieser Syntax einen "Prozedur-Fehler":
Dim SuchArray As Variant
Dim LetztZelle as Decimal
LetzteZelle = Sheets("BDE LISTE").Range("a5").End(xlDown).Row
SuchArray = Sheets("BDE LISTE").Range(Cells(1, 1), Cells(LetzteZelle, 6))
Wen ich das ganze so schreibe, bekomme ich kenen Fehler...:
Dim SuchArray As Variant
Dim LetztZelle as Decimal
LetzteZelle = Sheets("BDE LISTE").Range("a5").End(xlDown).Row
SuchArrayTerm = "A1:F" & LetzteZelle
SuchArray = Sheets("BDE LISTE").Range(SuchArrayTerm)
Ich verstehe nicht, warum der Array die "Cells" Methode nicht versteht. Weiß jemand warum?
Oder mache ich das so richtig stümperhaft falsch, so dass alle VBA-Cracks jetzt gerade vor Lachen vom Stuhl fallen... :-)
Würde gerne wissen, was ich falsch gedacht habe... in Bezug auf den Array und sein Verhalten....

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Array mit Range(Cells(y,x),Cells(a,b)) ?
25.07.2012 16:21:37
fcs
Hallo Sebastian,
Das Problem tritt auf, wenn "BDE_Liste" bei dir nicht nicht das aktive Blatt ist. Range und Cell beziehen sich ohne vorangestelltes Tabellen-Objekt immer auf das aktive Blatt bzw. innerhalb von Tabellenblatt-Modulen immer auf das zum Modul gehörige Tabellenblatt. Es ist aber nicht möglich innerhalb von Range(Bereich1,Bereich2) für Bereich1 und Bereich2 Zelle(n) aus einem anderen tabellenblatt anzugeben.
Du muss für alle Range-Objekte in der Zeile den Bezug zum gleichen Tabellenblatt herstellen. Das geht am einfachstem mit With und dann einem Punkt vor allen relevanten Objekten.
  Dim SuchArray As Variant
Dim LetzteZelle As Long
LetzteZelle = Sheets("BDE LISTE").Range("a5").End(xlDown).Row
With Worksheets("BDE LISTE")
SuchArray = .Range(.Cells(1, 1), .Cells(LetzteZelle, 6))
End With

Deklaration als Decimal führt bei mir zu einer Fehlermeldung, Long ist auch ausreichend.
Gruß
Franz
Anzeige
AW: Array mit Range(Cells(y,x),Cells(a,b)) ?
25.07.2012 20:47:22
Sebastian
Hallo Franz,
Vielen Dank für die Aufklärung. So ist es auch einleuchtend.
Und der Code auch "sauber" geschrieben.
Ich habe das nie wirtklich richtig gelernt...deshalb gehe ich oft nach dem Motto: "Blöd darf man sein...man muss sich nur zu helfen wissen :-)"
Trotzdem Danke nochmal
Freundliche Grüße
Sebastian

177 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige