Note: The other languages of the website are Google-translated. Back to English

폴더의 여러 텍스트 파일을 하나의 워크 시트로 가져 오는 방법은 무엇입니까?

예를 들어, 여기에 여러 텍스트 파일이있는 폴더가 있습니다. 원하는 것은 아래 스크린 샷 쇼와 같이 이러한 텍스트 파일을 단일 워크 시트로 가져 오는 것입니다. 텍스트 파일을 하나씩 복사하는 대신 한 폴더에서 한 시트로 텍스트 파일을 빠르게 가져 오는 방법이 있습니까?

VBA를 사용하여 한 폴더에서 단일 시트로 여러 텍스트 파일 가져 오기

Excel 용 Kutools를 사용하여 텍스트 파일을 활성 셀로 가져 오기 좋은 생각 3


다음은 특정 폴더의 모든 텍스트 파일을 새 시트로 가져 오는 데 도움이되는 VBA 코드입니다.

1. 텍스트 파일을 가져올 통합 문서를 활성화하고 Alt + F11 활성화 할 키 응용 프로그램 용 Microsoft Visual Basic 창.

2. 클릭 끼워 넣다 > 모듈, 복사하여 VBA 코드 아래에 붙여 넣으십시오. 모듈 창.

VBA : 한 폴더에서 한 시트로 여러 텍스트 파일 가져 오기

Sub Test()
'UpdatebyExtendoffice6/7/2016
    Dim xWb As Workbook
    Dim xToBook As Workbook
    Dim xStrPath As String
    Dim xFileDialog As FileDialog
    Dim xFile As String
    Dim xFiles As New Collection
    Dim I As Long
    Set xFileDialog = Application.FileDialog(msoFileDialogFolderPicker)
    xFileDialog.AllowMultiSelect = False
    xFileDialog.Title = "Select a folder [Kutools for Excel]"
    If xFileDialog.Show = -1 Then
        xStrPath = xFileDialog.SelectedItems(1)
    End If
    If xStrPath = "" Then Exit Sub
    If Right(xStrPath, 1) <> "\" Then xStrPath = xStrPath & "\"
    xFile = Dir(xStrPath & "*.txt")
    If xFile = "" Then
        MsgBox "No files found", vbInformation, "Kutools for Excel"
        Exit Sub
    End If
    Do While xFile <> ""
        xFiles.Add xFile, xFile
        xFile = Dir()
    Loop
    Set xToBook = ThisWorkbook
    If xFiles.Count > 0 Then
        For I = 1 To xFiles.Count
            Set xWb = Workbooks.Open(xStrPath & xFiles.Item(I))
            xWb.Worksheets(1).Copy after:=xToBook.Sheets(xToBook.Sheets.Count)
            On Error Resume Next
            ActiveSheet.Name = xWb.Name
            On Error GoTo 0
            xWb.Close False
        Next
    End If
End Sub

3. 프레스 F5 대화 상자를 표시하고 가져올 텍스트 파일이 포함 된 폴더를 선택합니다. 스크린 샷보기 :
doc 폴더에서 텍스트 파일 가져 오기 1

4. 클릭 OK. 그런 다음 텍스트 파일을 별도의 새 시트로 활성 통합 문서로 가져 왔습니다.
doc 폴더에서 텍스트 파일 가져 오기 2


하나의 텍스트 파일을 특정 셀 또는 범위로 가져 오려면 다음을 적용 할 수 있습니다. Excel 용 Kutools커서에 파일 삽입 유용.

Excel 용 Kutools, 이상과 300 편리한 기능으로 작업이 더 쉬워집니다. 

무료 설치 Excel 용 Kutools는 다음과 같이하십시오.

1. 텍스트 파일을 가져올 셀을 선택하고 쿠툴즈 플러스 > 수입 수출 > 커서에 파일 삽입. 스크린 샷보기 :
doc 폴더에서 텍스트 파일 가져 오기 3

2. 그런 다음 대화 상자가 나타나면 검색 를 표시하려면 파일 선택 셀 커서 위치 대화 상자에 삽입하려면 다음 선택 텍스트 파일 드롭 다운 목록에서 가져 오려는 텍스트 파일을 선택합니다. 스크린 샷보기 :
doc 폴더에서 텍스트 파일 가져 오기 4

3. 클릭 엽니다 > Ok, 지정 텍스트 파일이 커서 위치에 삽입되었습니다. 스크린 샷 참조 :
doc 폴더에서 텍스트 파일 가져 오기 5


최고의 사무 생산성 도구

Excel용 Kutools는 대부분의 문제를 해결하고 생산성을 80% 증가시킵니다.

  • 재사용: 빠르게 삽입 복잡한 공식, 차트 그리고 이전에 사용한 모든 것; 셀 암호화 암호로; 메일 링리스트 생성 이메일 보내기 ...
  • 슈퍼 포뮬러 바 (여러 줄의 텍스트와 수식을 쉽게 편집 할 수 있습니다.) 레이아웃 읽기 (많은 수의 셀을 쉽게 읽고 편집합니다.) 필터링 된 범위에 붙여 넣기...
  • 셀 / 행 / 열 병합 데이터 손실없이; 셀 내용 분할; 중복 행 / 열 결합... 중복 셀 방지; 범위 비교...
  • 중복 또는 고유 선택 행; 빈 행 선택 (모든 셀이 비어 있음); 슈퍼 찾기 및 퍼지 찾기 많은 통합 문서에서; 무작위 선택 ...
  • 정확한 사본 수식 참조를 변경하지 않고 여러 셀; 참조 자동 생성 여러 시트에; 글 머리 기호 삽입, 확인란 등 ...
  • 텍스트 추출, 텍스트 추가, 위치 별 제거, 공간 제거; 페이징 부분합을 만들고 인쇄합니다. 셀 내용과 주석 간 변환...
  • 슈퍼 필터 (다른 시트에 필터 구성표 저장 및 적용) 고급 정렬 월 / 주 / 일, 빈도 등 특수 필터 굵은 기울임 꼴로 ...
  • 통합 문서와 워크 시트 결합; 키 열을 기반으로 테이블 병합; 데이터를 여러 시트로 분할; xls, xlsx 및 PDF 일괄 변환...
  • 300개 이상의 강력한 기능. Office / Excel 2007-2021 및 365를 지원합니다. 모든 언어를 지원합니다. 기업 또는 조직에서 쉽게 배포할 수 있습니다. 전체 기능은 30일 무료 평가판입니다. 60일 환불 보장.
kte 탭 201905

Office Tab은 Office에 탭 인터페이스를 제공하여 작업을 훨씬 쉽게 만듭니다.

  • Word, Excel, PowerPoint에서 탭 편집 및 읽기 사용, Publisher, Access, Visio 및 Project.
  • 새 창이 아닌 동일한 창의 새 탭에서 여러 문서를 열고 만듭니다.
  • 생산성을 50% 높이고 매일 수백 번의 마우스 클릭을 줄입니다!
officetab 하단
코멘트 (46)
4에서 평가 된 5 · 1 등급
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
하위 테스트 ()
'업데이트바이Extendoffice6 / 7 / 2016
Dim xWb를 통합 문서로
Dim xToBook을 통합 문서로
Dim xStrPath를 문자열로
Dim xFileDialog As FileDialog
Dim xFile을 문자열로
xFiles를 새 컬렉션으로 흐리게 처리
흐릿한 I As Long
xFileDialog 설정 = Application.FileDialog(msoFileDialogFolderPicker)
xFileDialog.AllowMultiSelect = 거짓
xFileDialog.Title = "[Kutools for Excel] 폴더 선택"
xFileDialog.Show = -1이면
xStrPath = xFileDialog.SelectedItems(1)
END IF
xStrPath = ""이면 Sub 종료
If Right(xStrPath, 1) <> "\" 그러면 xStrPath = xStrPath & "\"
xFile = Dir(xStrPath & "*.txt")
xFile = ""이면
MsgBox "파일을 찾을 수 없습니다", vbInformation, "Excel용 Kutools"
서브 종료
END IF
Do While xFile <> ""
xFiles.xFile, xFile 추가
xFile = 디렉터리()
고리
xToBook = ThisWorkbook 설정
xFiles.Count > 0이면
I = 1 xFiles.Count에 대해
xWb 설정 = Workbooks.Open(xStrPath & xFiles.Item(I))
xWb.Worksheets(1).다음 이후 복사:=xToBook.Sheets(xToBook.Sheets.Count)
오류에 대한 다음 재개
ActiveSheet.Name = xWb.Name
오류 발생시 0
xWb.닫기 거짓
다음
END IF
최종 하위

이 코드는 도움이 되지만

탭, 세미콜론, 공백 true 이 작업을 수행하는 방법 저를 도와주세요
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
텍스트 파일을 시트로 변환한 후 공백(구분자)을 유지하시겠습니까?
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
그것은 내 문제이기도 합니다. 이 코드는 사실입니다. 그러나 텍스트 파일을 Excel로 변환한 후에는 구분 기호가 유지되지 않습니다.
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
텍스트 파일과 원하는 결과를 업로드할 수 있습니까?
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
나도 같은 문제가있어. txt 파일은 모두 별도의 시트에 있으며 코드는 두 열 사이의 공백을 무시합니다.
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕하세요, Des 및 PB Rama Murty, 아래 코드는 텍스트 파일을 시트로 가져오는 동안 공간 또는 탭을 기반으로 데이터를 열로 분할할 수 있습니다. 시도해 볼 수 있습니다.

하위 ImportTextToExcel()
'업데이트바이Extendoffice20180911
Dim xWb를 통합 문서로
Dim xToBook을 통합 문서로
Dim xStrPath를 문자열로
Dim xFileDialog As FileDialog
Dim xFile을 문자열로
xFiles를 새 컬렉션으로 흐리게 처리
흐릿한 I As Long
Dim xIntRow As Long
희미한 xFNum, xFArr As Long
Dim xStrValue를 문자열로
범위로 Dim xRg
희미한 xArr
xFileDialog 설정 = Application.FileDialog(msoFileDialogFolderPicker)
xFileDialog.AllowMultiSelect = 거짓
xFileDialog.Title = "[Kutools for Excel] 폴더 선택"
xFileDialog.Show = -1이면
xStrPath = xFileDialog.SelectedItems(1)
END IF
xStrPath = ""이면 Sub 종료
If Right(xStrPath, 1) <> "\" 그러면 xStrPath = xStrPath & "\"
xFile = Dir(xStrPath & "*.txt")
xFile = ""이면
MsgBox "파일을 찾을 수 없습니다", vbInformation, "Excel용 Kutools"
서브 종료
END IF
Do While xFile <> ""
xFiles.xFile, xFile 추가
xFile = 디렉터리()
고리
xToBook = ThisWorkbook 설정
오류에 대한 다음 재개
Application.ScreenUpdating = False
xFiles.Count > 0이면

I = 1 xFiles.Count에 대해
xWb 설정 = Workbooks.Open(xStrPath & xFiles.Item(I))
xWb.Worksheets(1).다음 이후 복사:=xToBook.Sheets(xToBook.Sheets.Count)

ActiveSheet.Name = xWb.Name

xWb.닫기 거짓
xIntRow = ActiveCell.CurrentRegion.Rows.Count
xFNum의 경우 = 1에서 xIntRow까지
xRg = ActiveSheet.Range("A" & xFNum) 설정
xArr = 분할(xRg.Text, " ")
UBound(xArr) > 0이면
xFArr = 0 UBound(xArr)까지
xArr(xFArr) <> ""이면
xRg.값 = xArr(xFArr)
xRg = xRg.Offset(ColumnOffset:=1) 설정
END IF
다음
END IF
다음
다음
END IF
Application.ScreenUpdating = True
최종 하위
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
쉼표를 기반으로 데이터를 열로 분할하려는 경우 필요한 변경 사항
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
데이터를 쉼표를 기반으로 하는 열로 변환해야 하는 경우 어떤 변경을 수행해야 합니까?
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
나는 이것을 사용했고 작동하지만 각 시트는 매일 로그 파일과 동일한 정보이므로 모두 하나의 시트에 저장하고 싶습니다.
그래서 나는
폴더의 모든 항목을 하나의 시트로
하위 ImportCSVsWithReference()
'Excel20151214용 Kutools로 업데이트
Dim xWb를 통합 문서로
Dim xToBook을 통합 문서로
Dim xStrPath를 문자열로
Dim xFileDialog As FileDialog
Dim xFile을 문자열로
xFiles를 새 컬렉션으로 흐리게 처리
흐릿한 I As Long
Dim xIntRow As Long
희미한 xFNum, xFArr As Long
Dim xStrValue를 문자열로
범위로 Dim xRg
희미한 xArr
오류 시 이동 ErrHandler
xFileDialog 설정 = Application.FileDialog(msoFileDialogFolderPicker)
xFileDialog.AllowMultiSelect = 거짓
xFileDialog.Title = "[Kutools for Excel] 폴더 선택"
xFileDialog.Show = -1이면
xStrPath = xFileDialog.SelectedItems(1)
END IF
xStrPath = ""이면 Sub 종료
If Right(xStrPath, 1) <> "\" 그러면 xStrPath = xStrPath & "\"
xSht = ThisWorkbook.ActiveSheet 설정
If MsgBox("가져오기 전에 기존 시트를 지우시겠습니까?", vbYesNo, "Kutools for Excel") = vbYes Then xSht.UsedRange.Clear
Application.ScreenUpdating = False
xFile = Dir(xStrPath & "\" & "*.log")
Do While xFile <> ""
xWb 설정 = Workbooks.Open(xStrPath & "\" & xFile)
ActiveSheet.UsedRange.Copy xSht.Range("A" & Rows.Count).End(xlUp).Offset(1)
xWb.닫기 거짓
xFile = 디렉토리
고리
Application.ScreenUpdating = True
서브 종료
오류 핸들러:
MsgBox "txt 파일 없음", "Excel용 Kutools"
최종 하위

이것은 각 열에 dd를 추가하는 공백입니다.

하위 ImportTextToExcel()
'업데이트바이Extendoffice20180911
Dim xWb를 통합 문서로
Dim xToBook을 통합 문서로
Dim xStrPath를 문자열로
Dim xFileDialog As FileDialog
Dim xFile을 문자열로
xFiles를 새 컬렉션으로 흐리게 처리
흐릿한 I As Long
Dim xIntRow As Long
희미한 xFNum, xFArr As Long
Dim xStrValue를 문자열로
범위로 Dim xRg
희미한 xArr
xFileDialog 설정 = Application.FileDialog(msoFileDialogFolderPicker)
xFileDialog.AllowMultiSelect = 거짓
xFileDialog.Title = "[Kutools for Excel] 폴더 선택"
xFileDialog.Show = -1이면
xStrPath = xFileDialog.SelectedItems(1)
END IF
xStrPath = ""이면 Sub 종료
If Right(xStrPath, 1) <> "\" 그러면 xStrPath = xStrPath & "\"
xFile = Dir(xStrPath & "*.txt")
xFile = ""이면
MsgBox "파일을 찾을 수 없습니다", vbInformation, "Excel용 Kutools"
서브 종료
END IF
Do While xFile <> ""
xFiles.xFile, xFile 추가
xFile = 디렉터리()
고리
xToBook = ThisWorkbook 설정
오류에 대한 다음 재개
Application.ScreenUpdating = False
xFiles.Count > 0이면

I = 1 xFiles.Count에 대해
xWb 설정 = Workbooks.Open(xStrPath & xFiles.Item(I))
xWb.Worksheets(1).다음 이후 복사:=xToBook.Sheets(xToBook.Sheets.Count)

ActiveSheet.Name = xWb.Name

xWb.닫기 거짓
xIntRow = ActiveCell.CurrentRegion.Rows.Count
xFNum의 경우 = 1에서 xIntRow까지
xRg = ActiveSheet.Range("A" & xFNum) 설정
xArr = 분할(xRg.Text, " ")
UBound(xArr) > 0이면
xFArr = 0 UBound(xArr)까지
xArr(xFArr) <> ""이면
xRg.값 = xArr(xFArr)
xRg = xRg.Offset(ColumnOffset:=1) 설정
END IF
다음
END IF
다음
다음
END IF
Application.ScreenUpdating = True
최종 하위
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
내 Txt 파일에 쉼표로 구분된 항목이 포함되어 있으면 어떻게 해야 합니까?
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
찾기 및 바꾸기 기능을 사용하여 쉼표를 먼저 공백으로 바꾸고 위의 방법 중 하나를 적용하여 Excel 파일로 변환할 수 있습니다.
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
코드에서 변경할 수 있는 방법이 없을까요? 130개의 파일로 이 작업을 수행해야 합니다.
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
같은 질문
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
여전히 도움이 필요한 사용자를 위해 xArr = Split(xRg.Text, " ")를 xArr = Split(xRg.Text, ",")로 바꾸십시오.
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
주어진 대로 모듈을 실행하면 각 .txt 파일이 기존 시트에 새 줄로 추가되지 않고 새 시트로 추가됩니다. 각 .txt 파일에 대한 새 시트 대신 출력으로 이를 달성하는 방법이 있습니까?
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
모든 텍스트 파일을 하나의 시트로 결합하는 것을 의미합니까?
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
네, 이것도 제가 원하는 것입니다.
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕하세요, Davinder, vba 코드 아래에서 시도해 볼 수 있습니다.
Sub ImportCSVsWithReference()
'UpdatebyKutoolsforExcel20151214
    Dim xSht  As Worksheet
    Dim xWb As Workbook
    Dim xStrPath As String
    Dim xFileDialog As FileDialog
    Dim xFile As String
    On Error GoTo ErrHandler
    Set xFileDialog = Application.FileDialog(msoFileDialogFolderPicker)
    xFileDialog.AllowMultiSelect = False
    xFileDialog.Title = "Select a folder [Kutools for Excel]"
    If xFileDialog.Show = -1 Then
        xStrPath = xFileDialog.SelectedItems(1)
    End If
    If xStrPath = "" Then Exit Sub
    Set xSht = ThisWorkbook.ActiveSheet
    If MsgBox("Clear the existing sheet before importing?", vbYesNo, "Kutools for Excel") = vbYes Then xSht.UsedRange.Clear
    Application.ScreenUpdating = False
    xFile = Dir(xStrPath & "\" & "*.txt")
    Do While xFile <> ""
        Set xWb = Workbooks.Open(xStrPath & "\" & xFile)
        ActiveSheet.UsedRange.Copy xSht.Range("A" & Rows.Count).End(xlUp).Offset(1)
        xWb.Close False
        xFile = Dir
    Loop
    Application.ScreenUpdating = True
    Exit Sub
ErrHandler:
    MsgBox "no txt files", , "Kutools for Excel"
End Sub
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
코드는 매우 유용합니다. 내가 찾은 유일한 코드로 txt 파일을 대량으로 가져오는 데 필요한 수정 사항도 Joyce와 Davinder가 추구하는 것입니다.
그것은 .txt 파일을 추출하고 특정 열에 서로 아래에 모두 붙여넣는 것입니다. 열 'N'이라고 말할 수 있습니다.

또한 다음과 같이 임포트된 .txt 파일에 "if 조건"을 추가할 수 있는지 알아야 합니다.
.txt 파일이 문자 'A'로 시작하는 경우 'N1' 셀로 시작하는 '시트 2'에 붙여넣습니다.
.txt 파일이 문자 'B'로 시작하는 경우 'N2' 셀로 시작하는 '시트 2'에 붙여넣습니다.
else MsgBox는 "인식할 수 없는 .txt 파일 용도"입니다.

사전에 감사합니다
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
이 코드가 저에게 효과적이었지만 여전히 일부를 변경해야 합니다.

*새 시트를 열지 않고 같은 시트에 붙여넣고 시간이 오래 걸리므로 복사하고 싶습니다.

* 가져온 txt 파일이 문자 A로 시작하는 경우 시트 1에 붙여넣고 문자 B로 시작하는 경우 시트 2로 가져온 경우 조건문을 삽입해야 합니다.


하위 testcopy3()
Dim xWb를 통합 문서로
Dim xToBook을 통합 문서로
Dim xStrPath를 문자열로
Dim xFileDialog As FileDialog
Dim xFile을 문자열로
xFiles를 새 컬렉션으로 흐리게 처리
오랫동안 어둡게
마지막 행을 길게 흐리게
범위로 딤 Rng
xFileDialog 설정 = Application.FileDialog(msoFileDialogFolderPicker)
xFileDialog.AllowMultiSelect = 거짓
xFileDialog.Title = "[Kutools for Excel] 폴더 선택"
xFileDialog.Show = -1이면
xStrPath = xFileDialog.SelectedItems(1)
END IF
xStrPath = ""이면 Sub 종료
If Right(xStrPath, 1) <> "\" 그러면 xStrPath = xStrPath & "\"
xFile = Dir(xStrPath & "*.txt")
xFile = ""이면
MsgBox "파일을 찾을 수 없습니다", vbInformation, "Excel용 Kutools"
서브 종료
END IF
Do While xFile <> ""
xFiles.xFile, xFile 추가
xFile = 디렉터리()
고리
범위("N2").선택
xToBook = ThisWorkbook 설정
xFiles.Count > 0이면
i = 1 xFiles.Count까지
xWb 설정 = Workbooks.Open(xStrPath & xFiles.Item(i))
xWb.활성화
'txt 데이터 선택 및 복사
범위 (Selection, Selection.End (xlDown)). 선택
선택. 복사
xToBook.활성화
ActiveSheet.Paste
선택.종료(xlDown).오프셋(1).선택
오류에 대한 다음 재개
오류 발생시 0
xWb.닫기 거짓
다음
END IF
최종 하위
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
미안, 내 손이 묶여
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕, 내 코드는 실행되지만 첫 번째 파일만 가져옵니다. 복사에 대한 방법 오류가 있다고 말합니다. 디버거는 다음 코드 줄을 강조 표시합니다. 어떤 아이디어?


xWb.Worksheets(1).다음 이후 복사:=xToBook.Sheets(xToBook.Sheets.Count)
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
동일한 문제가 있습니다. 해결책을 찾았습니까?
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
헤이 케이티,
귀하의 의견이 꽤 오래되었다는 것을 알고 있지만 동일한 문제에 직면하여 다음과 같이 수정했습니다. 모듈은 활성 .xlsx 프로젝트의 하위 폴더에 삽입되어야 합니다. 나는 보통 내 매크로를 저장하는 PERSONAL.XLSB의 하위 폴더에 코드를 복사하는 실수를 저질렀습니다. 다른 매크로에는 적용되지만 이 매크로에는 적용되지 않습니다.
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
모듈을 다시 실행할 때 중복을 원하지 않으면 vba 코드에서 시트를 어떻게 삭제합니까?
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
죄송합니다. 가혹한, 반복적으로 가져오지 않도록 주의하십시오.
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕하세요 저는 Excel에서 선행 XNUMX을 제거하는 것을 방지하고 싶습니다.

나는 아래 코드를 시도했지만 작동하지 않습니다


하위 테스트 ()
Dim xWb를 통합 문서로
Dim xToBook을 통합 문서로
Dim xStrPath를 문자열로
Dim xFileDialog As FileDialog
Dim xFile을 문자열로
xFiles를 새 컬렉션으로 흐리게 처리
흐릿한 I As Long
딤 j As Long
xFileDialog 설정 = Application.FileDialog(msoFileDialogFolderPicker)
xFileDialog.AllowMultiSelect = 거짓
xFileDialog.Title = "폴더 선택"
xFileDialog.Show = -1이면
xStrPath = xFileDialog.SelectedItems(1)
END IF
xStrPath = ""이면 Sub 종료
If Right(xStrPath, 1) <> "\" 그러면 xStrPath = xStrPath & "\"
xFile = Dir(xStrPath & "*.txt")
xFile = ""이면
MsgBox "파일을 찾을 수 없습니다", vbInformation, "Excel용 Kutools"
서브 종료
END IF
Do While xFile <> ""
xFiles.xFile, xFile 추가
xFile = 디렉터리()
고리
xToBook = ThisWorkbook 설정
xFiles.Count > 0이면
I = 1 xFiles.Count에 대해
xWb 설정 = Workbooks.Open(xStrPath & xFiles.Item(I))
ActiveSheet.Cells.NumberFormat = "@" '텍스트 파일 데이터를 붙여넣기 전에 텍스트 형식으로 엑셀을 만들기 위함입니다.
xWb.Worksheets(1).Copy After:=xToBook.Sheets(xToBook.Sheets.Count)
오류에 대한 다음 재개
ActiveSheet.Name = xWb.Name
오류 발생시 0
xWb.닫기 거짓
다음
END IF
최종 하위
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
Pooja, Excel 용 Kutools의 선행 XNUMX 제거 기능을 시도하여 가져온 후 선택 항목에서 모든 선행 XNUMX을 제거 할 수 있습니다.
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
하지만 제거하고 싶지 않습니다. 앞의 XNUMX을 제거하는 것을 방지하고 싶습니다.
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
선행 XNUMX을 유지하려면 셀 형식을 사용하여 텍스트 형식으로 서식을 지정할 수 있습니다.
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕하세요, 이 코드를 수정하여 *.txt 파일을 순서대로 1,2,3,4,5,6,7,8,9,10,11 등으로 삽입합니다. 현재 코드는 다음과 같이 파일을 삽입합니다.1,10,11,12,13,14,15,16,17,18,19,2,20,21, XNUMX 등. 감사합니다!
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
txt 파일 이름에서 특정 부분만 시트 이름을 가져올 가능성이 있습니까?

위의 코드에 따라 전체 시트 이름이 사용되었습니다.
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
사무실 2007 엑셀 작업 감사합니다.
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕, 내 코드는 실행되지만 첫 번째 파일만 가져옵니다. 복사에 대한 방법 오류가 있다고 말합니다. 디버거는 다음 코드 줄을 강조 표시합니다. 어떤 아이디어?


xWb.Worksheets(1).다음 이후 복사:=xToBook.Sheets(xToBook.Sheets.Count)
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
헤이 마르티뉴
나는 같은 문제가 있었고 다음 줄을 변경하여 해결했습니다.
xToBook = ThisWorkbook 설정

xToBook 설정 = ActiveWorkbook
아마도 이것이 도움이 될 것입니다.
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
0

도움이 필요합니다. 13000과 같은 여러 텍스트 파일을 가져오고 싶습니다. c1를 가져옵니다.
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
도움이 필요합니다. 13000과 같은 여러 텍스트 파일을 가져오고 싶습니다. c1를 가져옵니다.
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
코드는 작동하지만 각 텍스트 파일을 통합 문서의 새 탭으로 가져옵니다. 코드에서 마지막 텍스트 파일의 데이터 아래에 있는 동일한 워크시트의 새 텍스트 파일을 가져오도록 변경할 수 있는 부분이 있습니까?
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
아래 코드에서 텍스트 파일을 가져올 때마다 경로를 선택하는 대신 폴더를 지정하려는 경우 수정해야 할 작업은 무엇입니까?

VBA 코드:

하위 ImportCSVsWithReference()
'Excel20151214용 Kutools로 업데이트
Dim xSht를 워크시트로
Dim xWb를 통합 문서로
Dim xStrPath를 문자열로
Dim xFileDialog As FileDialog
Dim xFile을 문자열로
오류 시 이동 ErrHandler
xFileDialog 설정 = Application.FileDialog(msoFileDialogFolderPicker)
xFileDialog.AllowMultiSelect = 거짓
xFileDialog.Title = "[Kutools for Excel] 폴더 선택"
xFileDialog.Show = -1이면
xStrPath = xFileDialog.SelectedItems(1)
END IF
xStrPath = ""이면 Sub 종료
xSht = ThisWorkbook.ActiveSheet 설정
If MsgBox("가져오기 전에 기존 시트를 지우시겠습니까?", vbYesNo, "Kutools for Excel") = vbYes Then xSht.UsedRange.Clear
Application.ScreenUpdating = False
xFile = Dir(xStrPath & "\" & "*.txt")
Do While xFile <> ""
xWb 설정 = Workbooks.Open(xStrPath & "\" & xFile)
ActiveSheet.UsedRange.Copy xSht.Range("A" & Rows.Count).End(xlUp).Offset(1)
xWb.닫기 거짓
xFile = 디렉토리
고리
Application.ScreenUpdating = True
서브 종료
오류 핸들러:
MsgBox "txt 파일 없음", "Excel용 Kutools"
최종 하위
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕하세요, 아래 코드를 시도하십시오
Sub Test()
'UpdatebyExtendoffice6/7/2016
    Dim xWb As Workbook
    Dim xToBook As Workbook
    Dim xStrPath As String
    Dim xFile As String
    Dim xFiles As New Collection
    Dim I As Long
    xStrPath = "C:\Users\AddinsVM001\Desktop\test" 'Here is the parth you can modify
    If Right(xStrPath, 1) <> "\" Then xStrPath = xStrPath & "\"
    xFile = Dir(xStrPath & "*.txt")
    If xFile = "" Then
        MsgBox "No files found", vbInformation, "Kutools for Excel"
        Exit Sub
    End If
    Do While xFile <> ""
        xFiles.Add xFile, xFile
        xFile = Dir()
    Loop
    Set xToBook = ThisWorkbook
    If xFiles.Count > 0 Then
        For I = 1 To xFiles.Count
            Set xWb = Workbooks.Open(xStrPath & xFiles.Item(I))
            xWb.Worksheets(1).Copy after:=xToBook.Sheets(xToBook.Sheets.Count)
            On Error Resume Next
            ActiveSheet.Name = xWb.Name
            On Error GoTo 0
            xWb.Close False
        Next
    End If
End Sub

"C:\Users\AddinsVM001\Desktop\test"는 텍스트 파일을 가져올 수 있는 폴더 경로입니다. 필요에 따라 변경하십시오.
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕하세요, 소중한 VBA 코드 감사합니다.
그러나 여러 txt 파일에 대한 코드가 '각 txt 파일에 대한 개별 시트가 아닌 워크시트의 단일 시트'로 필요합니다.
내 목적에 맞게 코드를 무엇을 편집해야 합니까?

감사합니다,
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕하세요, 아래 코드를 시도하십시오
Sub Test()
    'UpdatebyExtendoffice 10/26/2022
    Dim xWb As Workbook
    Dim xToBook As Workbook
    Dim xStrPath As String
    Dim xFileDialog As FileDialog
    Dim xFile As String
    Dim xFiles As New Collection
    Dim I As Long
    Dim J As Long
    Dim xRg As Range
    Dim xSaveRg As Range
    Dim xSh As Worksheet
    
    Set xFileDialog = Application.FileDialog(msoFileDialogFolderPicker)
    xFileDialog.AllowMultiSelect = False
    xFileDialog.Title = "Select a folder [Kutools for Excel]"
    If xFileDialog.Show = -1 Then
        xStrPath = xFileDialog.SelectedItems(1)
    End If
    If xStrPath = "" Then Exit Sub
    If Right(xStrPath, 1) <> "\" Then xStrPath = xStrPath & "\"
    xFile = Dir(xStrPath & "*.txt")
    If xFile = "" Then
        MsgBox "No files found", vbInformation, "Kutools for Excel"
        Exit Sub
    End If
    Do While xFile <> ""
        xFiles.Add xFile, xFile
        xFile = Dir()
    Loop
    Set xToBook = ThisWorkbook
    Set xSh = xToBook.Sheets.Add
    Set xRg = xSh.Range("A1")
    J = 1
    Application.DisplayAlerts = False
    Application.ScreenUpdating = False
    If xFiles.Count > 0 Then
        For I = 1 To xFiles.Count
            Set xWb = Workbooks.Open(xStrPath & xFiles.Item(I))
            Set xSaveRg = xWb.Worksheets(1).UsedRange
            J = xSaveRg.Rows.Count + 1 + J
            Debug.Print xRg.Address
            xSaveRg.Copy Destination:=xRg
            On Error Resume Next
            xWb.Close False
            
            Set xRg = xSh.Cells(J, 1)
        Next
    End If
    Application.ScreenUpdating = True
    Application.DisplayAlerts = True
End Sub
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
이것은 잘 작동합니다. 그러나 가져올 때 시트에 .txt 확장자를 추가하지 않고 이름만 유지하도록 하는 방법은 name.txt로 시트의 이름을 바꿉니다.
3.5에서 평가 된 5
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
Ok nvm이 Google 도움말에서 답변을 찾았습니다.
줄 바꾸기:
ActiveSheet.Name = xWb.Name
와:
ActiveSheet.Name = Left(xWb.Name,Len(xWb.Name)-4)
시트 이름에서 마지막 4자를 제거합니다. 내가 필요한 것을 효과적으로 제공합니다. .txt가 없는 이름
건배
4에서 평가 된 5
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
아래 코드는 텍스트 파일을 시트로 가져오는 동안 공백 또는 탭을 기준으로 데이터를 열로 분할할 수 있습니다. 그러나 나는 각 txt 파일에 대해 별도의 탭을 원하지 않습니다. 한 장 아래에 모두 넣고 싶습니다. 정보는 각 파일에 대해 동일한 형식입니다. . 가져온 각 파일이 새 탭이 되는 대신 하나의 시트가 되도록 수정할 수 있는 항목 및 모든 도움을 주시면 감사하겠습니다.

하위 ImportTextToExcel()
'업데이트바이Extendoffice20180911
Dim xWb를 통합 문서로
Dim xToBook을 통합 문서로
Dim xStrPath를 문자열로
Dim xFileDialog As FileDialog
Dim xFile을 문자열로
xFiles를 새 컬렉션으로 흐리게 처리
흐릿한 I As Long
Dim xIntRow As Long
희미한 xFNum, xFArr As Long
Dim xStrValue를 문자열로
범위로 Dim xRg
희미한 xArr
xFileDialog 설정 = Application.FileDialog(msoFileDialogFolderPicker)
xFileDialog.AllowMultiSelect = 거짓
xFileDialog.Title = "[Kutools for Excel] 폴더 선택"
xFileDialog.Show = -1이면
xStrPath = xFileDialog.SelectedItems(1)
END IF
xStrPath = ""이면 Sub 종료
If Right(xStrPath, 1) <> "\" 그러면 xStrPath = xStrPath & "\"
xFile = Dir(xStrPath & "*.txt")
xFile = ""이면
MsgBox "파일을 찾을 수 없습니다", vbInformation, "Excel용 Kutools"
서브 종료
END IF
Do While xFile <> ""
xFiles.xFile, xFile 추가
xFile = 디렉터리()
고리
xToBook = ThisWorkbook 설정
오류에 대한 다음 재개
Application.ScreenUpdating = False
xFiles.Count > 0이면

I = 1 xFiles.Count에 대해
xWb 설정 = Workbooks.Open(xStrPath & xFiles.Item(I))
xWb.Worksheets(1).다음 이후 복사:=xToBook.Sheets(xToBook.Sheets.Count)

ActiveSheet.Name = xWb.Name

xWb.닫기 거짓
xIntRow = ActiveCell.CurrentRegion.Rows.Count
xFNum의 경우 = 1에서 xIntRow까지
xRg = ActiveSheet.Range("A" & xFNum) 설정
xArr = 분할(xRg.Text, " ")
UBound(xArr) > 0이면
xFArr = 0 UBound(xArr)까지
xArr(xFArr) <> ""이면
xRg.값 = xArr(xFArr)
xRg = xRg.Offset(ColumnOffset:=1) 설정
END IF
다음
END IF
다음
다음
END IF
Application.ScreenUpdating = True
최종 하위
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕하세요, Daniel, 아래 코드를 사용해 보세요. Txt라는 시트 하나에 모든 텍스트 파일을 가져옵니다.
참고: 텍스트 이름이 기존 시트 이름과 동일한 경우 텍스트 파일을 가져오지 못할 수 있습니다.
Sub ImportTextToExcel2()

'UpdatebyExtendoffice20230106

Dim xWb As Workbook

Dim xToBook As Workbook

Dim xStrPath As String

Dim xFileDialog As FileDialog

Dim xFile As String

Dim xFiles As New Collection

Dim I As Long

Dim xIntRow As Long

Dim xFNum, xFArr As Long

Dim xStrValue As String

Dim xRg As Range

Dim xArr

Dim xRowL, xRowH As Integer

Dim xTxtWS, xWSD As Worksheet

Dim xTxtWS_Rg As Range

Set xFileDialog = Application.FileDialog(msoFileDialogFolderPicker)

xFileDialog.AllowMultiSelect = False

xFileDialog.Title = "Select a folder [Kutools for Excel]"

If xFileDialog.Show = -1 Then

xStrPath = xFileDialog.SelectedItems(1)

End If

If xStrPath = "" Then Exit Sub

If Right(xStrPath, 1) <> "\" Then xStrPath = xStrPath & "\"

xFile = Dir(xStrPath & "*.txt")

If xFile = "" Then

MsgBox "No files found", vbInformation, "Kutools for Excel"

Exit Sub

End If

Do While xFile <> ""

xFiles.Add xFile, xFile

xFile = Dir()

Loop

Set xToBook = ThisWorkbook

On Error Resume Next

Set xTxtWS = xToBook.Worksheets("Txt")

If IsNull(xTxtWS) Or IsEmpty(xTxtWS) Then

    Set xTxtWS = xToBook.Worksheets.Add

    xTxtWS.Name = "Txt"

End If

Application.ScreenUpdating = False

Application.DisplayAlerts = False

xTxtWS.Activate

If xFiles.Count > 0 Then

xRowL = 1

For I = 1 To xFiles.Count

Set xWb = Workbooks.Open(xStrPath & xFiles.Item(I))

xWb.Worksheets(1).Copy after:=xToBook.Sheets(xToBook.Sheets.Count)

Set xWSD = xToBook.Sheets(xToBook.Sheets.Count)

xTxtWS.Activate

xWb.Close False

xIntRow = xWSD.UsedRange.CurrentRegion.Rows.Count

    For xFNum = 1 To xIntRow

        Set xRg = xWSD.Range("A" & xFNum)

        xArr = Split(xRg.Text, " ")

        Set xTxtWS_Rg = xTxtWS.Cells.Range("A" & xRowL)

'        If UBound(xArr) > 0 Then

            For xFArr = 0 To UBound(xArr)

                If xArr(xFArr) <> "" Then

                xTxtWS_Rg.Value = xArr(xFArr)

                Set xTxtWS_Rg = xTxtWS_Rg.Offset(ColumnOffset:=1)

                End If

            Next

'        End If

xRowL = xRowL + 1

    Next

xWSD.Delete

Next

End If

Application.ScreenUpdating = True

Application.DisplayAlerts = True

End Sub


아직 코멘트가 없습니다
여러분의 의견을 남겨
게스트로 게시
×
이 게시물 평가 :
0   등장 인물
추천 위치

Follow Us

저작권 © 2009 - WWW.extendoffice.com. | 판권 소유. 에 의해 구동 ExtendOffice. | | 사이트 맵
Microsoft 및 Office 로고는 미국 및 / 또는 기타 국가에서 Microsoft Corporation의 상표 또는 등록 상표입니다.
Sectigo SSL로 보호