'텍스트파일 엑셀로 읽어들이기'에 해당되는 글 1건

728x90

텍스트파일을 엑셀로 읽어서 정렬


엑셀 VBA 에서 텍스트 파일을 읽어들여서 셀을 나눠서 작업하기 위한 용도의 VBA Code.

현재 자료 하단에 자료를 추가하고 싶다면

    ActiveSheet.UsedRange.Clear 를 주석처리하고

    iRow = Cells(Rows.Count, "A").End(3).(2).Row 

라고 해주면 마지막 셀 하단에 자료가 추가가 됩니다.

구분자로 분리하고 싶지 않다면

        varTemp = Split(openTxt, ";")   '// 구분자로 읽어들인 하나의 행을 나눠서 배열에 저장
        Cells(iRow, 1).Resize(, UBound(varTemp) + 1) = varTemp '// 읽은 1행을, 엑셀 셀에 입력

대신에 Cells(iRow, 1).Value = openTxt '// 읽은 1행을, 엑셀 셀에 입력


Sub TextFile_To_ExcelRead()
    Dim openTxt As String
    Dim fileName As String
    Dim varTemp As Variant     
    Dim fileHandle As Integer
    Dim iRow As Long

    fileName = Application.GetOpenFilename("Text Files(*.txt),*.txt, Add-in Files (*.csv), *.csv", , "Please select text file...")
    If fileName = "False" Then     '//취소 선택 시 매크로 종료

        MsgBox "취소버튼이 선택되었습니다"   
        Exit Sub
    End If


    ActiveSheet.UsedRange.Clear   '// 현재 활성화된 시트에 있는 기존 데이터 전부 삭제

    iRow = 1     '// 활성화된 시트데이터를 지우지 않고 아래에 추가하고 싶다면 ??

    Application.ScreenUpdating = False  '// 화면 업데이트 일시 정지
    fileHandle = FreeFile   '// 사용 가능한, 파일 핸들 번호 구하기
    Open fileName For Input As fileHandle    '// 파일 열기

    '// 텍스트 파일 한 줄씩 읽기 (한글 영문 모두 가능)
    Do While Not EOF(fileHandle)    '// 파일의 끝까지 반복
        Line Input #fileHandle, openTxt  '// 읽은 1줄을 변수 openTxt 에 대입
        '// Line Input#문은 열려 있는 순차 파일에서 하나의 행을 읽어서 String 변수에 저장
        varTemp = Split(openTxt, ";")   '// 구분자로 읽어들인 하나의 행을 나눠서 배열에 저장
        Cells(iRow, 1).Resize(, UBound(varTemp) + 1) = varTemp '// 읽은 1행을, 엑셀 셀에 입력
        iRow = iRow + 1        '// 다음 행에 입력하기 위해 행번호 증가
    Loop

    Close fileHandle    '// 위에서 연 파일 닫기
   
    Range("C1").Select
    Selection.AutoFilter    '// 첫줄 자동필터, 만약 필터가 적용되었다면 해제가 됨
    Columns("A:B").HorizontalAlignment = xlCenter  '// A열,B열 가운데 정렬
    Rows(1).HorizontalAlignment = xlCenter  '// 1행만 가운데 정렬
    Columns.AutoFit     '// 열너비 자동 맞춤

End Sub

블로그 이미지

Link2Me

,