엑셀 VBA의 디렉토리에있는 파일
우리는 디렉토리에있는 모든 닫힌 통합 문서 및 워크 시트를 통해 루프 및 표시 모든 이름 엑셀 VBA에서 프로그램을보고 아래.
Book1.xlsx, Book2.xlsx, Book3.xlsx, Book4.xlsx 및 Book5.xlsx을 다운로드에 추가 “C : \ 테스트 \”
상황 :
명령 단추에 다음 코드 줄을 추가합니다
-
먼저, 우리는 String 유형, 워크 시트 개체의 두 변수 및 유형 정수의 두 변수를 선언합니다.
Dim directory As String, fileName As String, sheet As Worksheet, i As Integer, j As Integer
-
화면 깜박임을 피하기 화면 업데이트를 해제하십시오.
Application.ScreenUpdating = False
-
초기화 변수 디렉토리. 우리는 첫번째 .xl를 찾기 위해 Dir 함수를 사용 ?? 파일이 디렉토리에 저장됩니다.
directory = "c:\test\" fileName = Dir(directory & ".xl??")
주 : (?) Dir 함수는 여러 문자 (*) 및 단일 문자의 사용을 지원 엑셀 파일의 모든 다른 유형을 검색하는 와일드 카드.
-
변수 파일 이름은 현재 디렉토리에있는 첫 번째 Excel 파일의 이름을 보유하고 있습니다. DO가 While 루프를 추가합니다.
Do While fileName <> "" Loop
루프로 (5, 6, 7, 8, 9로) 다음의 코드 라인들을 추가한다.
-
초기화 유형 정수의 변수와 행 난의 첫 번째 열에 Excel 파일의 이름을 추가합니다.
i = i + 1 j = 2 Cells(i, 1) = fileName
-
폐쇄 Excel 파일에서 데이터를 추출 (또는 시트 이름)에 간단한 방법은 없습니다. 따라서, 우리는 Excel 파일을 엽니 다.
Workbooks.Open (directory & fileName)
행 난의 다른 컬럼에 모두에게 엑셀 파일의 시트 이름을 추가 7..
For Each sheet In Workbooks(fileName).Worksheets Workbooks("files-in-a-directory.xlsm").Worksheets(1).Cells(i, j).Value = sheet.Name j = j + 1 Next sheet
-
닫기 Excel 파일.
Workbooks(fileName).Close
-
Dir 함수는 특별한 기능입니다. 다른 Excel 파일을 얻으려면, 당신은 인수없이 다시 디렉터리 기능을 사용할 수 있습니다.
fileName = Dir()
참고 : 더 이상 파일 이름이 일치하지 않는 경우, Dir 함수 길이가 0 인 문자열 ( “”)을 반환합니다. 그 결과, 엑셀 VBA 루프 동안 할 일을 남겨 둘 것이다.
(루프 외부) 다시 업데이트 화면 (10)의 전원을 켭니다.
Application.ScreenUpdating = True
-
시험 프로그램.
결과 :