使用VBA将csv文件转换为Excel(列为文本)

使用VBA将csv文件转换为Excel(列为文本),excel,vba,Excel,Vba,例如,我有一个csv文件,其中包含以下数据(a.csv)以转换为Excel 在第二列中,前导0被截断 在将csv导入Excel之前,是否有方法将第二列定义为文本 我不想像许多解决方案中建议的那样在第二列中附加“`”或任何字符 a.csv -------- 123,001232323 456,004567772 我有下面的代码 srccsvfile = "C:\a.csv" tgtxlsfile = "C:\a.xls" 'Instantiate Excel Set objExcel = Cr

例如,我有一个csv文件,其中包含以下数据(a.csv)以转换为Excel

在第二列中,前导0被截断

在将csv导入Excel之前,是否有方法将第二列定义为文本

我不想像许多解决方案中建议的那样在第二列中附加“`”或任何字符

a.csv
--------
123,001232323
456,004567772
我有下面的代码

srccsvfile = "C:\a.csv"
tgtxlsfile = "C:\a.xls"

'Instantiate Excel
Set objExcel = CreateObject("Excel.Application")

'open the CSV file
Set objWorkBook = objExcel.Workbooks.open(srccsvfile)

Set objWorksheet1 = objWorkbook.Worksheets(1)

objWorksheet1.Columns("A:I").AutoFit
objWorksheet1.Columns("B").NumberFormat="@"

'Save the file as excel workbook
objWorkBook.SaveAs tgtxlsfile, 39

'close workbook
objWorkBook.Close False
'quit excel
objExcel.Quit

'clean up
Set objWorkBook = Nothing
Set objExcel = Nothing

将单元格的格式更改为“文本”,而不是“常规”或“数字”,Excell将不使用它

我不确定您是从哪里尝试执行代码的。以下是您可以从Excel VBA执行的操作;从其他地方执行代码将需要在代码中已经提到的一些调整

Sub importCSVFile()
Dim objWorkBook As Workbook
Dim myFile as String
srccsvfile = "C:\temp\a.csv"

Workbooks.OpenText Filename:=myFile, Origin:=-535, StartRow:=1, _
       DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter _
        :=False, Tab:=False, Semicolon:=False, Comma:=False, Space:=False, _
        Other:=True, OtherChar:=",", FieldInfo:=Array(Array(1, 1), Array(2, 2)), _
        TrailingMinusNumbers:=True

Set objWorkBook = ActiveWorkbook

'do something with active WorkBook

End Sub

你能给我一个vba的样品吗script@lijumathew试试这个问题:我认为这个链接会帮助你