簡體   English   中英

將Excel中兩個單元格中的文本合並為一個帶有VBA的單元格

[英]Merge text from two cells in Excel into one with VBA

我從客戶端收到了許多Excel文件。

他們的系統將數據提取到電子表格中,但是一欄有問題。 如果文本太長,它會將剩余的文本放入其下面的單元格中。

這會導致該行中的所有其他字段為空,除了溢出。

如何將所討論的單元格合並到我收到的所有文件中?

我上傳了該文件的屏幕截圖作為示例。 在第8行注意到H8是唯一的單元格。 這需要與H7合並。 但並不是每一行都有問題。

在此輸入圖像描述

asuming A是主要的(和空雙打)
asuming H持有文本
然后在L1復制下來

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

最簡單的方法(然后將值從L復制到H並刪除空行(只需使用過濾器)
當擁有未知行數(分裂后)時,你最好使用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,"")

或者對於vba改變Cells(i, 8) = Cells(i, 8) & Cells(i + 1, 8)Cells(i, 8) = Cells(i, 8) & " " & Cells(i + 1, 8)

這將連接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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM