2016-12-05 17 views
0

CSVファイルをxlsに変換しようとしています。CSVをExcelテーブルに変換する

CSVファイルには、次のようになります。

410E 54B9 C700 0 0 0 0

が、変換が行われたときの結果は、私はテーブルとしてそれをしたい

410E;54B9;C700;0;0;0;0
Const xlDelimited    = 1 
Const xlTextQualifierDoubleQuote = 1 
Const xlOpenXMLWorkbook   = 51 

Set xl = CreateObject("Excel.Application") 

xl.Workbooks.OpenText "C:\sssss.csv", , , xlDelimited _ 
    , xlTextQualifierDoubleQuote, True, True, True, True, True, True, _ 
    , Array(Array(1,2), Array(2,2), Array(3,2), Array(4,1), Array(5,2) _ 
    , Array(6,1), Array(7,1), Array(8,1), Array(9,1), Array(10,1), Array(11,1)) 
Set wb = xl.ActiveWorkbook 

wb.SaveAs "C:ssss.xlsx", xlOpenXMLWorkbook, , , , False 
wb.Close 

xl.Quit 

です。

答えて

1

Excelは、CSVとして受け入れるものについて非常に特有です。ファイルの名前を.csv以外(例:C:\sssss.txt)に変更すると、コードは期待どおりに機能するはずです。それ以外の場合は、ファイルの内容を変更する必要があります(セミコロンをカンマで置き換えてください)。

+0

しかし、私は.csvからxlsに変換し、txtからxlsに変換しません。 – user3657176

+1

@ user3657176拡張子を変更しても、ファイルの内容は変更されません。 –

+0

私は知っているが、私はcsvからそれを変更してcsvからtxtに変えずに行い、それを変換する。 – user3657176

1

あなたは、この仕事をする必要があり、あなたが必要とするよりも多くの引数を使用している:

Workbooks.OpenText Filename:="C:\ssss.csv", _ 
    StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _ 
    ConsecutiveDelimiter:=True, Space:=True 

を使用すると、通常のスペース文字よりも、あなたのCSVでの空白文字の異なる種類を使用している場合は、と述べました

Workbooks.OpenText Filename:="C:\ssss.csv", _ 
    StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _ 
    ConsecutiveDelimiter:=True, Other:=True, OtherChar:=" " 

CSVの空白文字をOtherCharの後に二重引用符で囲んでコピーして貼り付けてください。

また、ファイルの拡張子が.csvの場合、Excelはこれらのルールをすべて無視し、ファイルをCSVとして開きます。

あなたはNameでファイルの名前を変更することができ、またはファイルを開くと列にテキストを追加し続けることができ、ストレートインポート後に機能:

Range("A:A").TextToColumns Destination:=Range("A:A"), DataType:=xlDelimited, _ 
     TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=True, Tab:=False, _ 
     Semicolon:=False, Comma:=False, Space:=True, Other:=True, OtherChar:=";" 

は、この情報がお役に立てば幸い!

+0

それは動作していません – user3657176

+0

このコメントは、8ヶ月遅れの返信ほど役に立ちます。なぜそれは働いていないのですか?何が問題ですか?どの部分が動いていないのですか? –

関連する問題