将Excel中两个单元格的文本合并到一个使用VBA的文本中

我从客户端收到很多Excel文件。

他们的系统将数据提取到电子表格中,但是一列有问题。 如果文本太长,则会将剩余的文本放到下面的单元格中。

这导致该行中的所有其他字段为空,除了溢出。

我怎样才能合并单元格到一个我收到的所有文件?

我上传了一个文件的屏幕截图作为例子。 注意行8 H8是唯一的单元格。 这需要与H7合并。 虽然不是每一行都有问题。

在这里输入图像说明

这将连接H中的文本并删除无用的行:

Sub test_bm11() Dim wS As Worksheet, _ LastRow As Long, _ i As Long Set wS = ActiveSheet With wS LastRow = .Range("H" & .Rows.Count).End(xlUp).Row For i = LastRow To 2 Step -1 If .Cells(i, "A") <> vbNullString Then Else .Cells(i, "H").Offset(-1, 0) = .Cells(i, "H").Offset(-1, 0) & .Cells(i, "H") .Cells(i, "H").EntireRow.Delete End If Next i End With End Sub 

假设A是主要的(而且是双打的)
假设H持有案文
然后在L1复制下来

 =H1&IF(LEN(A2),H2,"") 

最简单的方法(然后将值从L复制到H并删除空行(仅使用filter)
当有不明数量的行(分裂后),你最好使用VBA(或重复整个过程,直到没有空行了… …)

在VBA中做:

 Sub testing() Dim i As Long While Len(Cells(i + 1, 8)) i = i + 1 While Len(Cells(i + 1, 1)) = 0 And Len(Cells(i + 1, 8)) Cells(i, 8) = Cells(i, 8) & Cells(i + 1, 8) Rows(i + 1).Delete Wend Wend End Sub 

大多数程序跳过空格,所以你可能想要使用:

 =H1&IF(LEN(A2)," "&H2,"") 

Cells(i, 8) = Cells(i, 8) & Cells(i + 1, 8) Cells(i, 8) = Cells(i, 8) & " " & Cells(i + 1, 8)