Как применить макрос ко всему столбцу? - PullRequest
0 голосов
/ 02 марта 2020

У меня есть макрос, который при запуске разделяет значения в разные ячейки в строке. Разделитель - это два пробела или более. Это пример, все это в одной ячейке.

One Space    Two  Spaces    Three   Spaces

Становится:

One Space Two Spaces Three Space

С каждым словом, находящимся в отдельной ячейке.

I у меня есть один целый столбец с примерно 300 000 строк с данными, подобными этим, я хотел бы знать, как я могу применить следующий макрос ко всему столбцу.

Dim rng As Range
Dim txt As String
Dim FullName() As String
Dim i As Long, colOffset As Long

Set rng = ActiveCell
txt = rng.Value2

FullName = Split(txt, String(2, " "))

For i = LBound(FullName) To UBound(FullName)
    If Not WorksheetFunction.Trim(FullName(i)) = vbNullString Then
        Debug.Print WorksheetFunction.Trim(FullName(i))
        colOffset = colOffset + 1
        rng.Offset(0, colOffset).Value2 = WorksheetFunction.Trim(FullName(i))
    End If
Next i

1 Ответ

1 голос
/ 02 марта 2020

Это разделит выбранные ячейки по пробелам на столбцы справа.

For Each c In Selection.Cells
    cellvalues = Split(WorksheetFunction.Trim(c.Value), " ")
    c.Offset(0, 1).Resize(1, UBound(cellvalues)).Value = cellvalues
Next

Просто удалите часть Offset(0,1)., чтобы перезаписать ценности. Вместо Selection вы можете использовать динамический диапазон c или диапазон, обозначенный кодом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...