Hallo,
hier meine Variante noch einmal angepasst für größere Datenmengen:
Code:
Sub mit_Komma_in_Zelle()
Dim oData As New DataObject
Dim i As Long, j As Long
Dim stgT As String
Dim arr
If Selection.Count > 1 Then
ReDim arr(Application.CountA(Selection) - 1)
For i = 1 To Selection.Count
If Cells(i, 1) <> "" Then
arr(j) = Cells(i, 1)
j = j + 1
End If
Next i
End If
If j > 0 Then
With oData
.SetText Join(arr, ",")
.PutInClipboard
End With
' Range("B1:B1") = Join(arr, ",") 'schreibt in Zelle B1 aber schneidet nach 32767 Zeichen ab
End If
End Sub
Bei meiner Version, wenn die Daten über die Zwischenablage irgendwo eingefügt werden, habe ich bei über 120.000 keine Probleme gehabt.
Chris' Version ist abhängig von Excel und der Zeichenkettenlänge einer Zelle, wenn ich nicht falsch gesehen habe sind das 32767 Zeichen.
Vom Komfort her ist meine Version auch sehr einfach zu bedienen.
Man markiert den Bereich, den man einlesen möchte, und über eine Tastenkombi startet man die Prozedur.
Und mit strg & V fügt man es ein.
So sieht die Verweis Geschichte bei mir aus:
[
Bild bitte so als Datei hochladen: Klick mich!]
Und hier eine Beispieldatei:
E-Mail Addressen Verketten.xlsm (Größe: 91,17 KB / Downloads: 4)