将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)