CSV文本到VBA中的列

问题描述 投票:0回答:1

我正在尝试拆分csv文件的元素(表),其中分隔符是管道线字符:|

我通过excel使用Text to Columns函数并且它工作,然后我记录了宏并使用它但没有成功。

数据未在列中对齐(例如:日期不在日期列中),就好像“将连续分隔符视为一个”选项处于活动状态,但代码中的“ConsecutiveDelimiter”设置为False。

这是我使用的代码:

Range("A1").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
    TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
    Semicolon:=False, Comma:=False, Space:=False, Other:=True, OtherChar _
    :="|", FieldInfo:=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, _
    1), Array(6, 1), Array(7, 1), Array(8, 1), Array(9, 1), Array(10, 1), Array(11, 1), Array(12 _
    , 1), Array(13, 1), Array(14, 1), Array(15, 1), Array(16, 1), Array(17, 1), Array(18, 1), _
    Array(19, 1), Array(20, 1), Array(21, 1), Array(22, 1), Array(23, 1), Array(24, 1), Array( _
    25, 1), Array(26, 1), Array(27, 1), Array(28, 1), Array(29, 1), Array(30, 1), Array(31, 1), _
    Array(32, 1), Array(33, 1), Array(34, 1), Array(35, 1), Array(36, 1), Array(37, 1), Array( _
    38, 1), Array(39, 1), Array(40, 1), Array(41, 1), Array(42, 1), Array(43, 1)), _
    TrailingMinusNumbers:=True

提前致谢

编辑

行样本下方:

  • 第一个包含列字段
  • 第二个是输出(它只显示一个数据,然后显示所有空白单元格)
  • 第三个是包含所有数据的行(在csv中)
  • 第四个显示了如何显示数据(使用Excel的文本到列)

XXX代码说明| HRAFVVH |终点|区域| jeis代码|验证

齐射

排球,足球|| GFV_4589 | N / A || 05

排球,足球“空白单元格”GFV_4589 N / A“空白单元格”05

excel vba excel-vba csv
1个回答
-1
投票

我认为问题不是上面的代码,而是来自csv文件的数据副本。事实上,数据是复制并粘贴到另一个excel文件中,然后启动Text to Columns宏。要复制和粘贴我使用此代码:

Workbooks(n_o).Worksheets("CSV").Activate
Cells.Select
Selection.Copy
Workbooks(thisworkb).Worksheets("CSV_NEW").Activate
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
Application.CutCopyMode = False
Workbooks(n_o).Close

实际上,之后宏已粘贴数据,如果我通过excel(手动)执行Text to Columns,结果也不正确。

© www.soinside.com 2019 - 2024. All rights reserved.