将从 PDF 文件导入的数据(拆分为多行)连接到一行中

问题描述 投票:0回答:1

我将 PDF 文件中的数据导入到 Excel 中。

一些列已分成两行。

此图片显示了问题和我想要的结果。
The issue and outcome

有超过1000行。 (请注意,有些行不需要修改,例如合同 3。)

我正在考虑使用 VBA 代码来检查 A 列下面的行是否为空/空。如果为真,那么它将连接 B 列和 C 列中的行。

excel vba pdf
1个回答
1
投票

这是一种方法。 选择数据(不包括标题)并运行:

Sub ConsolidateRows()
    Dim rw As Range, data As Range, r As Long, rwDest As Range, col As Long, v
    
    Set data = Selection
    For r = data.Rows.Count To 2 Step -1
        Set rw = data.Rows(r)
        If Len(rw.Cells(1).Value) = 0 Then ' "extra row" has no id in first cell
            'find next row above with a value in first cell
            Set rwDest = rw.Cells(1).End(xlUp).Resize(1, data.Columns.Count)
            If rwDest.Row < data.Rows(1).Row Then Exit Sub 'out of the data
            
            'copy values up and append to destination row
            For col = 2 To data.Columns.Count
                v = rw.Cells(col).Value
                If Len(v) > 0 Then 'anything to copy?
                    With rwDest.Cells(col)
                        .Value = .Value & IIf(.Value <> "", " ", "") & v
                    End With
                End If
            Next col
            rw.Delete 'remove this row
        End If
    Next r
End Sub
© www.soinside.com 2019 - 2024. All rights reserved.