【问题标题】:Linking columns until new values in column A链接列直到 A 列中的新值
【发布时间】:2020-01-29 11:12:14
【问题描述】:

在附表中,我想通过 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/

【问题讨论】:

    标签: excel vba


    【解决方案1】:

    没有必要为此使用 VBA:

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

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

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

    稍后您可以复制/粘贴格式、粘贴值,然后删除 A 列和 B 列。这样您将获得 After Sheet 中的内容

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

    希望对你有帮助

    【讨论】:

    • 感谢您的回答。是的,我知道这是一个简单的公式修复。但我想要一个 VBA 解决方案,因为有数百张工作表。
    猜你喜欢
    • 2017-04-20
    • 2023-03-21
    • 2016-09-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-28
    • 1970-01-01
    • 2012-11-23
    相关资源
    最近更新 更多