For each lässt Zelle aus. Warum?
30.06.2017 16:17:34
Znuk
Ich will in Excel eine Liste von Schlüsseln trennen. Die Liste sieht in etwa so aus:
[Key] Text
[Key] Text
[Key] Text
[Key] Text
DAfür habe ich folgendes Makro geschrieben:
Sub texttrenner()
Dim rng As Range
For Each rng In Selection
With rng
.Offset(0, 1).Value = Mid(rng.Value, 2, InStr(1, rng, "]") - 2)
.Offset(0, 2).Value = Mid(rng.Value, InStr(1, rng, "]") + 2, 99)
.delete Shift:=xlToLeft
End With
Next rng
End Sub
Es schreibt immer die beiden Textteile in die Spalte rechts vom Ursprungstext und löscht dann den Ursprungstext und schiebt nach Links.
Soweit so gut, funktionert eigentlich bestens. Aber etwas ist komisch: Immer die zweite Zelle im markierten Bereich wird ausgelassen. Egal ob 3 oder 1000 Zellen markiert sind. Immer die zweite Zelle. Kann mir jemand erklären warum?
Key | Text
[Key] Text |
Key | Text
Key | Text