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

4

我有一个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

我认为这个链接会对你有所帮助:http://www.vbaexcel.eu/vba-macro-code/extract-get-data-from-mysql-php#yvComment11 - Ranjit Kumar
2个回答

0

我不确定您尝试从哪里执行代码。以下是您可以在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

0
将单元格的格式更改为“文本”,而不是“常规”或“数字”,Excell 将保持不变。

请问您能否提供一个VBA脚本的示例? - liju mathew
@lijumathew 请尝试这个问题:https://dev59.com/eWsy5IYBdhLWcg3w3hyI - Brian Willis

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接