我有以下行来导入 csv 格式文件。
Workbooks.OpenText Filename:=sPath, DataType:=xlDelimited, Comma:=True, FieldInfo:=Array(Array(18, 5), Array(19, 5)), Local:=True
来自微软的文档here https://learn.microsoft.com/en-us/office/vba/api/excel.workbooks.opentext,如果 FieldInfo 是分隔的,则不必按任何顺序。
列说明符可以按任意顺序排列。如果没有专栏
输入数据中特定列的说明符,该列是
使用常规设置进行解析。
然而,无论我在第一个参数中输入什么,Excel似乎都将第一个数组视为第一列,将第二个数组视为第二列Array(Array(x, 5), Array(y, 5))
。因此,要到达第 18 列和第 19 列,我必须这样做,但这并不漂亮:
Workbooks.OpenText Filename:=sPath, DataType:=xlDelimited, Comma:=True, _
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, 5), _
Array(19, 5)), _
Local:=True
csv 文件样本数据:
fill_c1,pick_n2,po_num3,quanti4,addres5,cust_s6,color_7,size_d8,style9,shipto10,shipto11,addres12,addres13,city14,state15,zipcod16,custom17,start_18,end_da19,udford20
"52","1","2","000000001","000000000000000000000000000000","6","Z","XS","7","","","","","","","","M",20190310,20190318,"CF3"
"52","1","2","000000002","000000000000000000000000000000","6","Z","S","7","","","","","","","","M","20190310","20190318","CF3"