我正在尝试拆分csv文件的元素(表),其中的分隔符是管道字符:|
我通过excel使用了“文本到列”功能,并且可以正常工作,然后记录了宏并使用了它,但没有成功。
数据在列中未对齐(例如,日期不在日期列中),就好像选项“将连续定界符作为一个对待”是活动的,但是代码中的“ ConsecutiveDelimiter”设置为False。 / p>
这是我使用的代码:
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
预先感谢
修改
在行样本下面:
XXX代码说明| HRAFVVH |最高点|地区| jeis代码|验证
排球
排球,足球|| GFV_4589 | N / A || 05
排球,足球“空白单元格” GFV_4589 N / A“空白单元格” 05
答案 0 :(得分:-1)
我认为问题不是上面的代码,而是csv文件中数据的副本。实际上,将数据复制并粘贴到另一个excel文件中,然后启动“文本到列”宏。 要复制并粘贴,请使用以下代码:
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(手动)将“文本转换为列”,结果也不正确。