이 게시판은 아별닷컴 회원만 질문을 올릴 수 있습니다. 회원에게 주어지는 특권인셈이지요. 회원이 아닌 분들은 열람만 가능합니다.
예를 들어 c:\test\1.csv , c:\test\2.csv , c:\test\3.csv , c:\test\4.csv 파일이 있다고 가정 합니다.각 파일 내용은 다음과 같습니다.1"NO","DES""1","asdf""2","ㅁㄴㅇㅀ"2"NO","DES""2","ㅁㄴㅇㅀ"3"NO","DES""2","ㅁㄴㅇㅀ"4"NO","DES""2","ㅁㄴㅇㅀ"
위와 같이 있을때 1 2 파일은 SHEET1 에 A1 D1 부터 시작 하여 입력 되고3 4 파일은 SHEET2 에 A1 D1 부터 시작 하여 입렵 되도록 VBA 를 구현 하려고 하는데 어려네요
인터넷이 CSV 를 불러오는 쏘스들이 있는데 조금씩 손을 대야 하는데 잘 모르겠어서요
우선 [ , ] 은 구분 해야 합니다.
--
추가로 혹시 CSV 파일을 불러 올때 문자코드를 변경 하려고 하면 어떻게 해야 하나요python 에서 csv 를 다운 받다 보니 문자코드가 엑셀에서 변환을 한번 해줘야 정상적으로 뜨는 것 같더라고요.
댓글 '3'
엑셀 파일 내용을 CSV파일로 UTF-8로 인코딩해서 export하는 소스가 있습니다.
http://slway000.tistory.com/17
https://techspread.wordpress.com/2012/12/05/export-excel-to-csv-in-unicode-utf-8-using-macro-vba/
참고하시기 바랍니다.
Public Sub WriteCSV() If fileName = "False" Then On Error GoTo eh Dim BinaryStream For r = 1 To 10 BinaryStream.SaveToFile fileName, adSaveCreateOverWrite MsgBox "CSV generated successfully" eh: End Sub |
UTF-8로 읽고 쓰기
http://blog.naver.com/atmyhome/90154596931
[이하 위 링크에서 퍼온 코드 ]
Function TextStrimRead(strPathName As String) As String
Dim objStream As Object
Set objStream = CreateObject("ADODB.Stream")
objStream.Open
objStream.Type = 2 'adTypeText
objStream.Charset = "UTF-8"
objStream.LoadFromFile strPathName
TextStrimRead = objStream.ReadText
Set objStream = Nothing
End Function
Sub TextStrimWrite(strPathName As String, strString As String)
Dim objStream As Object
Set objStream = CreateObject("ADODB.Stream")
objStream.Open
objStream.Type = 2 'adTypeText
objStream.Charset = "UTF-8"
objStream.WriteText strString
objStream.SaveToFile strPathName, 2 'adSaveCreateOverWrite
Set objStream = Nothing
er:
End Sub
Sub test()
'경로는 자신의 경로로 수정하세요.
'UTF-8형식의 Sample1.txt 파일이 있어야 실행됩니다.
'텍스트 파일을 읽어오는 예시
Debug.Print TextStrimRead("C:\Documents and Settings\cjj_biz\바탕 화면\Sample1.txt")
'
'텍스트 파일에 쓰는 예시
TextStrimWrite "C:\Documents and Settings\cjj_biz\바탕 화면\Sample1.txt", "연습입니다."
End Sub
[출처] (엑셀vba)UTF-8형식의 텍스트파일 정상적으로 읽고 쓰기..|작성자 앳마
Sub test() Dim FilePath As String Dim LineFromFile As String Dim LineItems() As String Dim row_number As Integer 'FilePath = Application.DefaultFilePath & "\authors.csv" FilePath = "C:\jhj\ze.csv" Open FilePath For Input As #1
row_number = 0 Do Until EOF(1) Line Input #1, LineFromFile LineItems = Split(LineFromFile, ",") ActiveCell.Offset(row_number, 0).Value = LineItems(0) ActiveCell.Offset(row_number, 1).Value = LineItems(1) ActiveCell.Offset(row_number, 2).Value = LineItems(2) row_number = row_number + 1 Loop Close #1
End Sub
혹시 위 에서 문자열 한글 문자열을 utf8 euc-kr 등을 바꾸려면 어떻게 해야 하는지 문의 드립니다.