Hallo,
ich glaube, du solltest bei
If UBound(arrS) > z Then z = UBound(arrS)
eins dazuzählen:
If UBound(arrS) > z Then z = UBound(arrS) + 1
denn dein Array arrS läuft von 0 bis Ubound(arrS), deine Spalten haben aber die Basis 1.
Du verlierst sonst hier
.Cells(x, 1).Resize(, z).Value = arrS
den letzten Eintrag (kann natürlich auch Absicht sein); ich will damit sagen, dass nicht das komplette Array in das Tabellenblatt reingeschrieben wird.
Beispiel:
Sub Bspl()
Dim sText As String, arrS() As String
sText = "das_ist_unsichtbar"
arrS = Split(sText, "_")
Range("A1").Resize(, UBound(arrS)).Value = arrS
Range("A2").Resize(, UBound(arrS) + 1).Value = arrS
End Sub
Grüße, Ulrich
|