AW: kommt Fehlermeldung
Luc
Hallo Reinhard,
wollte schon weg sein, aber zur Strafe dafür, das ich das nicht getestet hatte, musste ich das ja jetzt wohl klären. Also nicht die Dimensionalität ist schuld an der Fehlermeldung, sondern, dass es sich um einen Range handelt. Join verarbeitet offensichtlich nur 1dimens. Datenfelder in Variablen (z.B. vom Typ Variant), was ich bisher auch stets getan, hier aber offensichtlich vergessen habe. Also müssen die Inhalte erst mal in eine solche Variable, weshalb du bereich wohl als Variant deklariert hast. Im folgenden geht es dann allerdings nicht ohne eine For- bzw For-Each-Schleife, da hat Kurt recht (s.u.):
Sub ttt()
Dim Bereich() As Variant, Zeile As String, i As Integer, n As Integer, x As Range
n = Range("A1:D1").Cells.Count - 1
ReDim Bereich(n)
For Each x In Range("A1:D1")
Bereich(i) = x.Value
i = i + 1
Next x
Zeile = Join(Bereich, "")
MsgBox Zeile
End Sub
Natürlich kannst du die einzelnen Werte in einer For-Schleife auch direkt miteinander verknüpfen, aber Join() ist schon recht hilfreich, vor allem, wenn man aus solchen Feldern Zeichenketten macht, um sie irgendwo zwischenzuspeichern und später wieder in Felder zurückzuverwandeln.
Mein Hinweis auf den anderen Thread bezog sich in 1.Linie auf die Notation von Zellbezügen. Hier verwendet der Recorder eine Methode, die von der OnLine-Hilfe nicht gerade in den Vordergrund gerückt wird.
Also hat etwas gedauert, meine Frau wird sauer sein, denn ich wollte schon weg sein.
Schönen Abend und tut mir leid (gut dass ich mir das mit dem Besen verkniffen habe).
Luc
PS: hat gedauert, inzwischen war hier wohl einiges los, schau ich gleich mal.