Здравствуйте. Прошу помощи. Условие задачи следующее:
в ячейке A1 находится набор слов разделенных пробелом, состоящий из 9553 знаков, включая пробелы. Необходимо взять каждое слово из этой ячейки и вставить по-порядку в ячейки диапазона A2:An.
Собственно, макрос я написал, но меня не устраивает время его выполнения - более 5 секунд и, как он сам выглядит. Помогите сделать код более лаконичным, не таким кривым и уменьшить время его выполнения.
Код
Option Explicit
Private Sub CommandButton1_Click()
Dim i&, a(), j(), txt As String, txtlength&, m&, t&
txt = Range("A1").Value
txtlength = Len(Range("A1").Value)
Range("A2:A" & txtlength).ClearContents
m = 1
ReDim a(1 To txtlength)
ReDim j(1 To txtlength, 1 To 1)
t = Timer
For i = 1 To txtlength
a(i) = Mid(txt, i, 1)
If Mid(txt, i, 1) = " " Then
j(m, 1) = Join(a, "")
ReDim a(i To txtlength)
If i <> txtlength Then
m = m + 1
End If
End If
Next i
Range("A2").Resize(m, 1).Value = j
MsgBox Timer - t
End Sub
option explicit
sub t()
dim arr,arrOut(),r&
arr=split([a1].value2)
redim arrout(1 to ubound(arr)+1,1 to 1)
for r=1 to ubound(arrout,1)
arrout(r,1)=arr(r-1)
next r
[a2].Resize(ubound(arrout,1), 1).Value2 =arrout
end sub
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄