【发布时间】:2019-03-13 21:06:48
【问题描述】:
我有下面一行来导入一个 csv 格式的文件。
Workbooks.OpenText Filename:=sPath, DataType:=xlDelimited, Comma:=True, FieldInfo:=Array(Array(18, 5), Array(19, 5)), Local:=True
根据微软的文档here,如果FieldInfo 是分隔的,则不必按任何顺序排列。
列说明符可以是任何顺序。如果没有专栏 输入数据中特定列的说明符,该列是 使用常规设置解析。
然而,无论我在第一个参数Array(Array(x, 5), Array(y, 5)) 中输入什么,excel 似乎都将第一个数组视为第一列,将第二个数组视为第二列。所以要到达第 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"
【问题讨论】:
-
该行只是为我打开了 CSV 文件...打开后你想做什么?
-
该行应打开 CSV,但还将第 18 列和第 19 列格式化为日期 MDY。为了使问题更加明显,您可以尝试 Array(18, 9), Array(19, 9),它不应该导入这 2 列,但它禁用的只是第 1 列和第 2 列。
-
非常有趣 - 我现在正在研究这个。顺便说一句,值 5 是“YMD”格式,值 3 是 MDY。
-
看看这个帖子here,这可能有助于解释发生了什么......