Попытка разбить данные из одной ячейки на несколько ячеек - PullRequest
0 голосов
/ 10 июня 2019

Я пытаюсь разделить данные из одной ячейки на несколько ячеек. Пример строки данных будет:

7/21 6,98 2,18 CR 7 / 19-7 / 24

Моя цель - сделать так, чтобы каждый фрагмент данных отображался в отдельных столбцах с помощью макроса VBA. Это код, который я до сих пор

Sub nameTest()

    Dim txt As String
    Dim i As Integer
    Dim FullName As Variant

    txt = ActiveCell.Value

    FullName = Split(txt, " ")
    For i = 0 To UBound(FullName)
        Cells(1, i + 1).Value = FullName(i)
    Next i

End Sub

Моя проблема в том, что я не могу найти способ заставить его работать на каждом ряду, а не только на одном ряду. Кто-нибудь знает как это сделать? спасибо за ваше время и помощь

Ответы [ 2 ]

2 голосов
/ 10 июня 2019

Предполагая, что столбцы B: F доступны, возможно:

Columns("A:A").TextToColumns Destination:=Range("B1"), DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=True, Tab:=True, Space:=True, FieldInfo:=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1))
0 голосов
/ 10 июня 2019

Вы можете попробовать:

Коды:

Option Explicit

'Method 1 - Fixed range
Sub nameTest()

    With ThisWorkbook.Worksheets("Sheet1")

        .Range("C1:G1").Value = Split(.Range("A1"), " ")

    End With

End Sub

'Method 2 - Dinamic range starting from C1
Sub nameTest()

    Dim arr As Variant

    With ThisWorkbook.Worksheets("Sheet1")

        arr = Split(.Range("A1"), " ")

        .Range(.Cells(1, 3), .Cells(1, UBound(arr) + 3)).Value = arr

    End With

End Sub

Результаты:

enter image description here

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