运行 列 A:A 的 text2column

Running text2column for column A:A

我对 VBA 脚本编写还很陌生,但我必须执行以下操作:

我成功转换文件,但无法执行 Text2Column 部分。 我的数据只在A列,分隔符“;”,只在sheet1上。 这是我最新的代码 运行:

 Sub text2columns()
    Dim rg As Range

    Set rg = Range("A:A").CurrentRegion

    rg.TextToColumns Destination:=Range("A:A"), ConsecutiveDelimiter:=True, DataType:=xlDelimited, Space:=True

    End Sub

谁能帮帮我?我知道问题很基本,但需要一些帮助才能继续。 谢谢!

您提到了目的地:=范围("A:A")。 此外,您的输入和输出范围不能相同。 我想,它不应该是一列,只是一个单元格

请检查 Destination:=Range("B1") 是否有效。

格式样式 ~> 1:制表符,2:逗号,3:space,4:semiclone,5:None,6:User的字母

Sub TransToXLSFromCSV()
Dim vFile As Variant
Dim vDB
Dim fn As String
Dim strPath As String
Dim i As Long
Dim Wb As Workbook
    strPath = ThisWorkbook.Path
    vFile = Application.GetOpenFilename("Select Text Files *.txt,*.txt;*.csv", _
      Title:="Select Text Files!", MultiSelect:=True)
    If TypeName(vFile) = "Boolean" Then Exit Sub
    Application.ScreenUpdating = False

    For i = 1 To UBound(vFile)
        fn = Dir(vFile(i))
        fn = Left(fn, Len(fn) - 4)

         Set Wb = Workbooks.Open(Filename:=vFile(i), Format:=2) '<~~ Foramt style comma
         vDB = Wb.ActiveSheet.UsedRange
         Wb.Close
         Set Wb = Workbooks.Add
         With Wb
            .ActiveSheet.Range("a1").Resize(UBound(vDB, 1), UBound(vDB, 2)) = vDB
            .SaveAs Filename:=strPath & "\" & fn & ".xlsx"
            .Close (0)
         End With
    Next i
    Application.ScreenUpdating = True
End Sub

请试试这个代码:

Sub text2columns()
    Dim rg As Range, arrFlInf(19) As Variant, i As Long
    For i = 0 To UBound(arrFlInf)
        Select Case i
            Case 1 - 8, 10   'Text
                arrFlInf(i) = Array(i + 1, 2)
            Case 12 - 15, 18 'date (MDY)
                arrFlInf(i) = Array(i + 1, 3)
            Case Else        'General
                arrFlInf(i) = Array(i + 1, 1)
        End Select
    Next i
    Set rg = Range("A:A")

    rg.TextToColumns Destination:=Range("A1"), _
        ConsecutiveDelimiter:=False, _
        DataType:=xlDelimited, _
        Semicolon:=True, _
        fieldInfo:=arrFlInf
End Sub

如果您不需要日期格式为 "MDY" 类型,则必须将其更改为以下类别之一:4 = DMY、5 = YMD、6 = MYD、7 = DYM 和8 = YDM.