ich die Anwendung einer Formel: Wie ändert man den Bereich innerhalb der Formel dynamisch?
textuelle Repräsentation der Formel:
=(SUBSTITUTE((LEFT(A2;(FIND("htt";A2;1))-3));";";";"))&RIGHT(A2;(LEN(A2)-(FIND("htt";A2;1))+3))
an alle Zellen in einem Bereich A2: A10, ein Ergebnis, das Schreiben auf einen Bereich B2: bzw. B10.
Um dies zu tun, verwende ich das folgende Makro:
Sub ColumnsFormat()
Dim s As String
Dim i As Integer, j As Integer
'Set wb = Workbooks("CSV_File.xlsm")
Application.ScreenUpdating = False
j = 1
For i = 2 To 10
s = "=(SUBSTITUTE((LEFT(R[" & Trim(Str(i)) & "]C[" & Trim(Str(j - 2)) & "],(FIND(""htt"",R[" & Trim(Str(i)) & "]C[" & Trim(Str(j - 2)) & "],1))-3)),"","","";""))&RIGHT(R[" & Trim(Str(i)) & "]C[" & Trim(Str(j - 2)) & "],(LEN(R[" & Trim(Str(i)) & "]C[" & Trim(Str(j - 2)) & "])-(FIND(""htt"",R[" & Trim(Str(i)) & "]C[" & Trim(Str(j - 2)) & "],1))+3))"
Sheets("Sheet1").Cells(i, 2).Value = s
Next i
End Sub
Das Problem ist, dass eine Zeilennummer in der Formel aus irgendeinem Grunde in einem For
Zyklus falsch ist. Anstatt A2 zu nehmen; A3; A4 ... A10-Zellen, (wobei die Zeilennummer jedesmal um 1 geändert wird), Makro läuft durch A2; A4; A6 usw. (Erhöhung der Zeilennummer um jeweils 2).
Was mache ich falsch?
ja, Sie haben Recht. Danke vielmals! – Ale