使用宏分割列时出错
问题描述:
我是VBA新手,我会很感激任何帮助。我在文档中运行一些宏,其中一个宏是一个用名称复制列的宏,将它粘贴到下一列的右侧,并使用texttocolumns将它分成两个名称和姓氏。当列它复制的名字从不是空的,它运行良好,但如果范围是空的它给使用宏分割列时出错
运行时错误1004 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
输入代码在这里
答
避免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
谢谢你的sooo多斯科特.....它确实TI .... !!!!我非常感激。 – Gilbert
@吉尔伯特请在答案处点击复选标记并标记为正确。 –