首页 > 解决方案 > 链接列直到 A 列中的新值

问题描述

在附表中,我想通过 VBA 链接单元格内容。

A 列包含应链接到 B 列中的单元格的内容,直到将新内容添加到 A 为止。

附表中的示例已缩短。桌子要长得多。我制作了一张“之前”和“之后”的表格。

我拥有的代码从 A 链接到 B,直到新值进入 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/

标签: excelvba

解决方案


无需为此使用 VBA:

在此处输入图像描述

在 B1 中,因为是第一个条目,所以我手动复制。

我在 B2 中的公式是=IF(B2="";"";C1&B2)向下拖动

我在 C1 中的公式是=B1并向下拖动

稍后您可以复制/粘贴格式、粘贴值,然后删除 A 列和 B 列。这样您就可以在工作After表中得到什么

如果您需要 VBA 解决方案,您可能可以使用宏记录器获取代码并根据您的需要进行调整。

希望这可以帮助


推荐阅读