Связывание столбцов до новых значений в столбце A - PullRequest
0 голосов
/ 29 января 2020

В прилагаемой таблице я хотел бы связать содержимое ячейки с помощью VBA.

Столбец A содержит содержимое, которое должно быть связано с ячейками в столбце B, пока новое содержимое не будет добавлено в A.

Пример в прилагаемой таблице сокращен. Столы намного длиннее. Я сделал листы «до» и «после».

Код, который я имею, связан от А до В, пока в A не появится новое значение. Но VBA всегда принимает самое новое значение в столбце B и не все предыдущие.

Как настроить код так, чтобы все значения из B связывались с A, пока новое значение не попадет в столбец A?

Sub Linking_columns_until_new_values()

    Dim arr
    Dim z As Long
    Dim txt As String
    Dim ws As Worksheet

    For Each ws In Worksheets

        ws.Select

        With ActiveSheet.UsedRange.Columns(1).Resize(, 2)

            .Columns(1).SpecialCells(xlCellTypeBlanks).Font.Bold = False

            arr = .Value

            For z = 1 To UBound(arr)

                If arr(z, 1) <> "" Then
                    txt = arr(z, 1)
                ElseIf arr(z, 2) = "" Then
                    arr(z, 1) = ""
                Else
                    arr(z, 1) = txt & " " & arr(z, 2)
                End If

            Next

            .Value = arr

        End With

    Next

End Sub

Вот ссылка на лист: https://www.evernote.com/l/AGApoCGk-OJGKaHxwB2F-VCjO9uWJN299TM/

1 Ответ

0 голосов
/ 29 января 2020

Для этого не нужно использовать VBA:

enter image description here

В B1, потому что это первая запись, я скопировал вручную.

Моя формула в B2 - =IF(B2="";"";C1&B2) и перетащите вниз

Моя формула в C1 - =B1 и перетащите вниз

Позже вы сможете копировать / вставлять форматы, вставлять значения, а затем удалите столбцы A и B. Таким образом, вы получите то, что вы получили в After Sheet

Возможно, вы сможете использовать макро-рекордер, чтобы получить код и адаптировать его к вашим потребностям, если вам нужно решение VBA.

Надеюсь, это поможет

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