2012-11-03 94 views
2

我有一個csv文件,例如數據如下(a.csv)。現在我想用vba腳本轉換成excel 。我已經在這裏經歷了許多解決方案,問題是在第二列中,前導0被截斷。在將csv導入到excel之前,有一種將第二列定義爲文本的方法。我不想在許多解決方案中建議將「`」或任何字符附加到第二列。能否請您提供的樣本代碼使用vba將csv文件轉換爲Excel(使用列作爲文本)

a.csv 
-------- 
123,0
456,004567772 

我有下面的代碼,但它doenst工作

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 
+0

我認爲這個鏈接將幫助您http://www.vbaexcel.eu/vba-macro-code/extract-get- data-from-mysql-php#yvComment11 –

回答

0

更改單元格的格式爲「文本」,而不是「一般」或「數量」而Excell將會一事無成。

+0

你能否給我一個樣本vba腳本 –

+0

@lijumathew試試這個問題:http://stackoverflow.com/questions/8265350/how-to-change-format-of-a-細胞對文本的使用,VBA –

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 
相關問題