我是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
在这里输入代码
答案 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