VB(A)

한글로 된 텍스트파일 불러오기

당근쨈 2015. 5. 16. 19:00

그냥 input 을 사용하면 한글의 경우엔 에러가 난다.

숫자와 영문자는 1바이트를, 한글은 2바이트를 불러오기에 발생하는 에러.

StrConv(InputB(LOF(1), 1), vbUnicode) 라는 코드를 이용해 에러를 방지.

무슨 뜻인지는 모르겠지만 일단은..


Sub getAdd()
 
    Dim rngImport As Range
    Dim strFilter As String
    Dim strFile As Variant
    Dim i As Integer, j As Integer
    Dim varAdd As Variant
    Dim varA As Variant
 
    '변수설정
    ChDir ThisWorkbook.Path
    Set rngImport = Range("A1")
    strFilter = "텍스트파일 (*.txt), *.txt"
 
    '기존자료 삭제 후 텍스트파일 불러오기
    With rngImport
        .CurrentRegion.ClearContents
        .Resize(, 3= Array("이름""주소""우편번호")
    End With
    strFile = Application.GetOpenFilename(FileFilter:=strFilter, Title:="파일 선택", MultiSelect:=False)
 
    '파일선택 취소하면 매크로 종료
    If TypeName(strFile) = "Boolean" Then Exit Sub
 
    Open strFile For Input As #1
 
    '텍스트 파일을 배열에 삽입(한글이라 설정을 더 해줘야함)
    varAdd = Split(StrConv(InputB(LOF(1), 1), vbUnicode), vbLf)
    Close #1
 
    '셀에 배열 입력
    i = 2
    j = 1
    For Each varA In varAdd
        Cells(i, j) = varA
        j = j + 1
        If j = 4 Then
            i = i + 1
            j = 1
        End If
    Next varA
End Sub
cs



엑셀.xlsm


텍스트.txt




'VB(A)' 카테고리의 다른 글

그룹별 오름차순 정렬 v2  (0) 2015.07.27
다른 엑셀파일의 데이터 가져오기  (2) 2015.05.16
2중 VLOOKUP  (0) 2015.05.15
그룹으로 내림차순  (0) 2015.05.15
셀 안의 문자열 삭제  (0) 2015.05.03