Thema Datum  Von Nutzer Rating
Antwort
10.02.2020 09:14:22 Gast12996
NotSolved
10.02.2020 09:25:10 Gast27007
Solved
10.02.2020 10:38:48 G12996
NotSolved
10.02.2020 10:45:30 Gast51782
NotSolved
10.02.2020 10:51:59 Gast12996
NotSolved
10.02.2020 12:34:48 Gast36946
NotSolved
Rot Einzelne Strings auslesen
10.02.2020 19:29:02 xlKing
NotSolved

Ansicht des Beitrags:
Von:
xlKing
Datum:
10.02.2020 19:29:02
Views:
501
Rating: Antwort:
  Ja
Thema:
Einzelne Strings auslesen

Hallo,

Auch wenn der Code nicht von mir stammt, bin ich mal so frei den Code von Gast 51782 zu erklären:

Nm ist eine beliebige Variable in der ein Array gespeichert wird, nämlich das von der Split-Funktion zurückgegebene eindimensionale nullbasierte Array. Wenn du nm dimensionieren willst, dann nur als Variant. Also kannst du es auch lassen, da nicht dimensionierte Variablen immer von Typ Variant (mit Untertypen) sind. Eventuell ist keine Variable sondern eine Aussage (würd ich jetzt mal behaupten). Nicht eventuell sondern auf jeden Fall brauchst du Application.Transpose, das das eindimensionale Array in ein Range-Array umwandelt. wenn du das weglässt wird nämlich nur der erste Name zurückgegeben. Mit Cells.Resize erzeugst du in Spalte 2 einen Range, der so groß ist wie das Array (die Größe des Arrays wird von Ubound bestimmt). Da du durch Transpose nun ein zweidimensionales Range-Array hast, kannst du dem erzeugten Range nun die Werte des Arrays zuweisen.

Hier der Code von Gast in lesbarer Form und leicht abgewandelt.

Sub lkjaslf()

nm = Split(Cells(1, 1), ",")
nm = Application.Transpose(nm)
Cells(1, 2).Resize(UBound(nm)) = nm

End Sub

Und hier alternativ ein Code, wie ich ihn aufgebaut hätte. Der Code gehört in ein allgemeines Modul (z.B. Modul1)

Function Teilname(Namen As String, Position As Long, Optional Delimiter As String = ",") As String
  arr = Split(Namen, Delimiter)
  Teilname = arr(Position - 1)
End Function

Das geht sogar noch kürzer:

Function Teilname(Namen As String, Position As Long, Optional Delimiter As String = ",") As String
  Teilname = Split(Namen, Delimiter)(Position - 1)
End Function

Dann im Sheet in B1 nur die Formel =Teilname($A$1;zeile()) eingeben oder z.B. =Teilname($A$1;2) und sehen was passiert. Die erste Formel kann man auch runterziehen. Oder falls du mit Semikolon trennst dann =Teilname($A$1;2;";")

Gruß Mr. K.


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:

 
 

  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
10.02.2020 09:14:22 Gast12996
NotSolved
10.02.2020 09:25:10 Gast27007
Solved
10.02.2020 10:38:48 G12996
NotSolved
10.02.2020 10:45:30 Gast51782
NotSolved
10.02.2020 10:51:59 Gast12996
NotSolved
10.02.2020 12:34:48 Gast36946
NotSolved
Rot Einzelne Strings auslesen
10.02.2020 19:29:02 xlKing
NotSolved