Страницы: 1
RSS
Заполнить диапазон словами из ячейки
 
Здравствуйте. Прошу помощи. Условие задачи следующее:

в ячейке 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
Изменено: НСС - 04.06.2020 16:38:22
 
НСС, здравствуйте. Проще простого
Код
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Код
Sub Raznesti()
Dim arr
Dim i As Long
  arr = Split(Range("A1"), " ")
  Range("A2").Resize(UBound(arr) + 1) = Application.Transpose(arr)
End Sub
 
Jack Famous, Kuzmich, спасибо большое!!
 
НСС, обращайтесь  ;)
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
Страницы: 1
Наверх