【问题标题】:Merge Excel rows where record was split合并记录被拆分的 Excel 行
【发布时间】:2016-08-08 19:23:13
【问题描述】:

我正在导出报告,并且在导入 Excel 时记录拆分为多行。导入后,每个报告都有超过 30K 行。唯一免于拆分的列是 A 列,其他列可以拆分为 2-4 行。 是否有自动合并这些行,使其看起来像附加图像的底部?

【问题讨论】:

  • 如果您还没有,我会考虑自定义如何导入到 excel 中。我不确定您从中提取的文件是什么样的,但它可能很简单。
  • @MaciejLos 我一直在使用公式将两个单元格连接到空列中,但这不适用于所有记录,所以我仍然必须手动浏览整个文档
  • @LoopMe 这是一个 .txt 文件
  • 您可以将.txt文件导入excel。它通常使用某种分隔符(例如制表符或逗号)来了解单元格的结束和开始位置。
  • @LoopMe 我正在导入 .txt 文件,但文档内部没有分隔符,Excel 可以识别该分隔符以进行导入,并且由于其中的记录位于多行中,因此分隔符没有'不要将它们带入与之前文本相同的单元格中。

标签: excel vba merge macros


【解决方案1】:

您可能想要使用此代码:

Option Explicit

Sub main()
    Dim area As Range
    Dim strng As String
    Dim iRow As Long, startRow As Long, endRow As Long, iCol As Long

    With Worksheets("Export") '<--| change "Export" with your actual sheet name
        With .Range("A2:A" & .UsedRange.Rows(.UsedRange.Rows.Count).row).SpecialCells(xlCellTypeBlanks)
            For Each area In .Areas
                strng = ""
                startRow = area.End(xlUp).row
                endRow = area.Rows(area.Rows.Count).row
                iCol = area.End(xlToRight).Column
                For iRow = startRow To endRow
                    strng = strng & .Parent.Cells(iRow, iCol) & " "
                Next iRow
                .Parent.Cells(startRow, iCol) = strng
            Next area
            .EntireRow.Delete
        End With
    End With
End Sub

【讨论】:

  • 谢谢!这似乎对大多数记录都有效,我在问题中添加了一张图片,因此如果您好奇的话,您可以看到它不起作用的结果。不过,这仍然帮助我节省了一些时间。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-05-21
  • 1970-01-01
  • 2015-03-27
  • 2021-12-02
  • 1970-01-01
  • 2022-12-09
  • 1970-01-01
相关资源
最近更新 更多