使用宏拆分列时出错

时间:2017-11-10 20:21:49

标签: vba

我是VBA的新手,我会感激任何帮助。我在我的文档中运行了一些宏,其中一个是用于复制带有名称的列的宏,将其粘贴到右下一列,并使用texttocolumns将其拆分为两个,名称和姓氏。当它复制名称的列不为空时,它运行正常,但如果范围为空,则给出

  

运行时错误1004 Range类的TextToColumns方法失败。

Sheets("PUNTA").Select
Range("C2:C45").Select
Selection.Copy
Range("D2:D45").Select

Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False

Columns("D:D").Select

Selection.TextToColumns Destination:=Range("D1"), DataType:=xlDelimited, _
    TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
    Semicolon:=False, Comma:=True, Space:=False, Other:=False, FieldInfo _
    :=Array(Array(1, 1), Array(2, 1)), TrailingMinusNumbers:=True
Sheets("Tours").Select

End Sub

在这里输入代码

1 个答案:

答案 0 :(得分:1)

避免Select并在使用文本到列之前测试列中是否有值。

With Sheets("PUNTA")
    .Range("D2:D45").Value = .Range("C2:C45").Value
    If Application.WorksheetFunction.CountA(.Range("D:D")) > 0 Then
        .Range("D:D").TextToColumns Destination:=Range("D1"), DataType:=xlDelimited, _
            TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
            Semicolon:=False, Comma:=True, Space:=False, Other:=False, FieldInfo _
            :=Array(Array(1, 1), Array(2, 1)), TrailingMinusNumbers:=True
    End If
End With