簡體   English   中英

將多行單元格拆分為行

[英]Split Multi-Line Cell into Rows

我有一個代碼,用於將Excel中的多行單元格拆分為幾行,並且可以與單個單元格一起很好地工作。 但是,如果我擴大范圍(如下所示),則會收到“ Type Mismatch錯誤消息。

Dim SplitText

SplitText = Split(Range("A1:B1").Value, vbLf)
Range("A1:B1").Resize(UBound(SplitText) + 1).Value = Application.Transpose(SplitText)

到目前為止,我還沒有找到我所缺少的東西的運氣。

Split需要一個字符串參數。 您將必須一一完成。
嘗試類似的方法:

Dim SplitText
Dim myRange As Range, r As Range

Set myRange = Sheet1.Range("A1:B1") '/* change Sheet1 to actual sheet */

For Each r In myRange
    SplitText = Split(r, vbLf)
    r.Resize(UBound(SplitText) + 1) = Application.Transpose(SplitText)
Next

以下代碼應該為您工作,請記住,它還會插入要填充的新行,而不是用內容填充現有行。 如果不需要,只需刪除第一個For Each循環和行插入語句即可。

Sub SplitText()
    Dim MaxSize As Integer
    Dim rng As Range

    Set rng = Range("A1:B1")
    MaxSize = 0

    For Each cell In rng
        Dim CurrentSize As Integer
        CurrentSize = UBound(Split(cell.Value, vbLf))

        If CurrentSize > MaxSize Then
            MaxSize = CurrentSize
        End If
    Next

    Rows((rng.Row + 1) & ":" & (rng.Row + MaxSize)).Insert Shift:=xlDown

    For Each cell In rng
        Dim SplitText
        SplitText = Split(cell.Value, vbLf)
        cell.Resize(UBound(SplitText) + 1).Value = Application.Transpose(SplitText)
    Next

End Sub

暫無
暫無

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

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