首页 > 解决方案 > 制表符的文本到列逗号分隔问题

问题描述

我正在将“文本到列”转换为许多以逗号分隔的 .txt 文件。少数行中有 [TAB]。当我使用 text-to-columns 宏进行转换时,这些行将删除选项卡后该行上的所有内容。

我已经尝试过“TextQualifier:=xlTextQualifierNone”和“TextQualifier:=xlTextQualifierDoubleQuote”,希望其中一个是问题所在,但都不是正确的。下面是我的代码:

Sub Text2ColsAX()
'
' Text2ColsAX Macro
'

Dim wsCopy As Worksheet
Dim rngCopy As Range

Set wsCopy = Application.ActiveSheet

With wsCopy
    Set rngCopy = .Range("a2:a" & .Range("a2").End(xlDown).Row)

    rngCopy.Select

    Selection.TextToColumns Destination:=Range("A2"), DataType:=xlDelimited, _
        TextQualifier:=xlTextQualifierNone, ConsecutiveDelimiter:=False, Tab:=False, _
        Semicolon:=False, Comma:=True, Space:=False, Other:=False, FieldInfo _
        :=Array(Array(1, 2), Array(2, 5), Array(3, 2), Array(4, 2), Array(5, 2), Array(6, 2), _
        Array(7, 2), Array(8, 2), Array(9, 2), Array(10, 2), Array(11, 1), Array(12, 1), Array(13, 2 _
        ), Array(14, 2), Array(15, 2), Array(16, 2), Array(17, 1), Array(18, 1), Array(19, 2)), TrailingMinusNumbers:=True


    Selection.TextToColumns Destination:=Range("A2"), DataType:=xlDelimited, _
        TextQualifier:=xlTextQualifierNone, ConsecutiveDelimiter:=False, Tab:=False, _
        Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo _
        :=Array(Array(1, 2), Array(2, 5), Array(3, 2), Array(4, 2), Array(5, 2), Array(6, 2), _
        Array(7, 2), Array(8, 2), Array(9, 2), Array(10, 2), Array(11, 1), Array(12, 1), Array(13, 2 _
        ), Array(14, 2), Array(15, 2), Array(16, 2), Array(17, 1), Array(18, 2), Array(19, 2)), TrailingMinusNumbers:=True

End With

End Sub

一行如下:

"1 2345678 some words with TAB HERE>     901234 morewords,mm/dd/yyyy,moretext,moretext,1234.56,,E1234,0000,000,123456,00000,000000"

变成:

"1 2345678 some words with TAB HERE>"

双引号不是文本的一部分。它们仅指示文本行的开始位置和结束位置。

标签: vba

解决方案


推荐阅读