4

たとえば、Excel に変換する以下のデータ (a.csv) を含む csv ファイルがあります。

2 番目の列では、先頭の 0 が切り捨てられます。

csv を Excel にインポートする前に、2 番目の列をテキストとして定義する方法はありますか?

多くのソリューションで提案されているように、「`」または任意の文字を 2 列目に追加したくありません。

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
4

2 に答える 2

0

どこからコードを実行しようとしたのかわかりません。これがExcelVBAからできることです。他の場所からコードを実行するには、コードですでに述べたいくつかの調整が必要になります...

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
于 2012-11-04T02:51:29.070 に答える
0

セルの書式を「一般」または「数値」ではなく「テキスト」に変更すると、Excell はそれをそのままにします。

于 2012-11-03T21:23:21.803 に答える