空单元格中的类型不匹配错误?

时间:2018-02-08 15:19:24

标签: excel vba excel-vba

下面显示的代码如下所示,一旦遇到空单元格,我似乎会收到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语句,但不幸的是没有用。

任何想法如何解决这个问题?谢谢你的帮助!

3 个答案:

答案 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