将csv文件导入Excel时,文本将转换为数字

时间:2016-02-16 17:25:20

标签: excel-vba vba excel

我正在使用以下内容将CSV文件导入Excel 2010电子表格:

 Set wb = Workbooks.Open(Filename:=myFile, ReadOnly:=True, Notify:=False)
 Set ws = wb.Worksheets(1)
 Set rRng = ws.Range("A" & CStr(iFirstDataRow) & ":" & "G" & CStr(iLastRow))
 rRng.Columns(2).NumberFormat = "@"
 'copy file on sheet ws1
 ws1.Cells.Clear
 rRng.Copy ws1.Cells(1, 1)

问题是其中一列包含的修订号在CSV文件中显示如下:

0.0
1.0
2.2
2.20

导入后我得到:

0
1
2.2
2.2

因为文本已转换为数字。

我该怎么办?

谢谢你, M.R。

更新

使用Opentext方法也不起作用:

 Workbooks.OpenText Filename:=sFile, Origin:=xlWindows, StartRow:=1, DataType:=xlDelimited, Tab:=False, Semicolon:=False, Comma:=True, Space:=False, Other:=False, FieldInfo:=Array(Array(1, xlMDYFormat), Array(2, xlTextFormat)) 

由于某种原因,忽略了FieldInfo参数

1 个答案:

答案 0 :(得分:0)

使用:

Set wb = Workbooks.OpenText

使用适当的参数将修订号字段定义为 String 。参见:

Documentation