下面显示的代码如下所示,一旦遇到空单元格,我似乎会收到Type Mismatch
错误。通常,最大范围是A1:MZ1。
代码将包含4行文本的单元格拆分为4行。
Dim SplitText
Dim myRange As Range, k As Range
Set myRange = Sheet2.Range("A1:LN1")
For Each k In myRange
SplitText = Split(k, vbLf)
k.Resize(UBound(SplitText) + 1) = Application.Transpose(SplitText)
Next
最初,我认为这可能是由于转置长度限制,但毕竟情况似乎并非如此。 我尝试添加一个If语句,但不幸的是没有用。
任何想法如何解决这个问题?谢谢你的帮助!
答案 0 :(得分:4)
为什么让你的生活变得困难......只需检查vbLf
并按其分开:
For Each k In myRange
If InStr(1, k, vbLf) Then
SplitText = Split(k, vbLf)
k.Resize(UBound(SplitText) + 1) = Application.Transpose(SplitText)
End If
Next
答案 1 :(得分:3)
尝试,
SplitText = Split(k & vbLf, vbLf)
一个真正空白的单元格是空的,但是包含换行符的单元格可以使用Split。
答案 2 :(得分:1)
最简单的方法是检查k
是否为空
If Not IsEmpty(k) Then
SplitText = Split(k, vbLf)
k.Resize(UBound(SplitText) + 1) = Application.Transpose(SplitText)
End If