[英]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.