Как разделить значение адреса выше одной ячейки на несколько значений через макрос

-1

Как разделить нижнее значение одной ячейки на несколько значений через макрос?

Итак, это ...

A1 = MISS FirstName LastName***95*SPECIAL ROAD**LONDON SW92**SW929AB

... следует разделить, как показано ниже,

B1 = MISS
C1 = FirstName 
D1 = LastName
E1 = 95 SPECIAL ROAD
F1 = LONDON SW92
G1 = SW929AB

Кто-нибудь может помочь в этом?

user323020
источник
3
Это реальные личные данные, которыми вы там делитесь? Я настоятельно рекомендую вам удалить его, если это так.
slhck
Итак, ваши разделители - это пробелы и строки звездочек длиннее 1? Но не последовательно?
Raystafarian
Данные не очень важны, пока структура остается в такте. Поскольку мы не можем сказать, были ли данные, которые вы использовали, настоящими или нет, я отредактировал их
Dave

Ответы:

2

На основании приведенной вами демонстрации и того факта, что вы написали «Как разделить значение выше одной ячейки на значение нескольких ячеек с помощью макроса, как показано ниже», это именно так и происходит.

Sub Button1_Click()
Dim address() As String
address() = Split(Range("A1").Value, "**")

Dim col As Integer
col = 66

    For Each Item In address

        If (col = 66) Then

            For Each Name In Split(Item, " ")
                Range(Chr(col) & 1).Value = Trim(Name)
                col = col + 1
            Next Name

        Else

        Dim newValue As String
        newValue = Replace(Item, "*", " ")

            If (newValue <> "") Then
                Range(Chr(col) & 1).Value = Trim(newValue)
                col = col + 1
            End If

        End If

    Next Item

End Sub
Dave
источник
1
Это действительно умный, несмотря на использование массива без размера. +1
Raystafarian