2016-12-05 6 views
0

CSV 파일을 xls로 변환하려고합니다.CSV를 Excel 테이블로 변환

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 

내가 테이블로 할 수 있습니다 :

CSV 파일은 다음과 같습니다.

답변

1

Excel은 CSV로 받아들이는 것에 관해 매우 특별합니다. 파일 이름을 .csv (예 : C:\sssss.txt)로 변경하면 코드가 예상대로 작동합니다. 그렇지 않으면 세미콜론을 쉼표로 대체하여 파일의 내용을 변경하여 Excel의 예상과 일치시켜야합니다.

+0

하지만 .csv에서 xls로 변환하고 txt에서 xls로 변환하고 싶습니다. – user3657176

+1

@ user3657176 확장명을 변경해도 파일의 내용은 변경되지 않습니다. –

+0

나는 csv에서 txt로 변경하지 않고 Excel로 변환 한 다음 변환 할 것이다. – 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:=" " 

OtherChar 다음에 CSV의 공백 문자를 큰 따옴표 사이에 복사하여 붙여 넣으십시오.

또한 Ansgar가 말했듯이 파일 확장명이 .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 개월 늦은 답장만큼 유용합니다. 왜 작동하지 않는거야? 문제가 무엇입니까? 어떤 부분이 작동하지 않습니까? –