AW: Zelleninhalt teilen per VBA
17.07.2018 15:35:31
Daniel
Hi
ich würde hier VBA mit Formeln kombinieren, dh auch per VBA würde ich die entsprechenden Formeln in die Zellen schreiben und dann die Formeln durch Werte ersetzen.
hat den Vorteil, dass es sehr schnell ist, außerdem einfach zu programmieren und zu testen (keine Schleifen, die man in Einzelstep durchtickern muss und man sieht sofort alle Ergebnisse, die man überprüfen kann.
With Range("A1:A" & Cells(rows.count, 1).end(xlup).row).Offset(0, 1).Resize(, 2)
.Columns(1).FormulaR1C1 = _
"=IF(LEN(SUBSTITUTE(RC1],"" "",""""))=10,RIGHT(RC1,4),RC1])"
.Columns(2).FormulaR1C1 = _
"=--IF(LEN(SUBSTITUTE(RC1,"" "",""""))=10,TEXT(--LEFT(RC1,6),""2000-00-00""),"""")"
.Formula = .Value
end with
Columns(1).Delete
funktioniert allerdings nur für Datumswerte ab Jahr 2000.
wenn es in der Spalte keine Ausnahmen gibt alle Zellen auf diese weise umgearbeitet werden müssten, ließe sich das auch sehr elegant mit TEXT IN SPALTEN erledigen. Allerdings werden dann alle Werte nach dem 6. Zeichen getrennt:
Columns("A:A").TextToColumns Destination:=Range("A1"), _
DataType:=xlFixedWidth, FieldInfo:=Array(Array(0, 5), Array(6, 1))
Gruß Daniel