Я применяя формулу: Как динамически изменять диапазон внутри формулы?
текстовое представление формулы:
=(SUBSTITUTE((LEFT(A2;(FIND("htt";A2;1))-3));";";";"))&RIGHT(A2;(LEN(A2)-(FIND("htt";A2;1))+3))
для всех ячеек в диапазоне А2: А10, пишущий результат в диапазоне B2: B10 соответственно.
Для этого я использую следующий макрос:
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
Проблема заключается в том, что по какой-то причине номер строки внутри формулы внутри For
цикла является неправильным. Вместо того, чтобы брать A2; A3; A4 ... A10, (каждый раз изменяя число строк на 1), макрос проходит через A2; A4; A6 и т. Д. (Каждый раз увеличивая число строк на 2).
Что я делаю неправильно?
Да, вы правы. Большое спасибо! – Ale