엑셀 VBA를 사용하여 가져 오기 시트
우리는 엑셀 VBA에서 프로그램을보고 아래 하나 개의 엑셀 파일에 다른 Excel 파일에서 수입 시트가.
Book4.xlsx, Book5.xlsx을 다운로드에 추가 “C : \ 테스트 \”
상황 :
명령 단추에 다음 코드 줄을 추가합니다
-
먼저, 우리는 String 유형, 워크 시트 개체의 두 변수 및 유형 정수의 하나 개의 변수를 선언합니다.
Dim directory As String, fileName As String, sheet As Worksheet, total As Integer
화면 업데이트 및 표시 경고를 해제합니다.
Application.ScreenUpdating = False Application.DisplayAlerts = False
-
초기화 변수 디렉토리. 우리는 첫번째 .xl를 찾기 위해 Dir 함수를 사용 ?? 파일이 디렉토리에 저장됩니다.
directory = "c:\test\" fileName = Dir(directory & ".xl??")
주 : (?) Dir 함수는 여러 문자 (*) 및 단일 문자의 사용을 지원 엑셀 파일의 모든 다른 유형을 검색하는 와일드 카드.
-
변수 파일 이름은 현재 디렉토리에있는 첫 번째 Excel 파일의 이름을 보유하고 있습니다. DO가 While 루프를 추가합니다.
Do While fileName <> "" Loop
루프로 (5, 6, 7 및 8에서)은 다음의 코드 라인들을 추가한다.
-
폐쇄 Excel 파일에서 워크 시트를 복사 할 수있는 간단한 방법이 없습니다.
그러므로 우리는 Excel 파일을 엽니 다.
Workbooks.Open (directory & fileName)
-
가져 오기 가져 오기 sheet.xlsm로 엑셀 파일의 시트.
For Each sheet In Workbooks(fileName).Worksheets total = Workbooks("import-sheets.xlsm").Worksheets.count Workbooks(fileName).Worksheets(sheet.Name).Copy _ after:=Workbooks("import-sheets.xlsm").Worksheets(total) Next sheet
설명 : 변수 총 수입 sheet.xlsm의 워크 시트의 총 수의 트랙을 보유하고 있습니다. 우리는 수입 sheets.xlsm의 마지막 워크 시트 후 각 워크 시트를 복사하고 붙여 넣을 워크 시트 개체의 복사 방법을 사용합니다.
-
닫기 Excel 파일.
Workbooks(fileName).Close
제 Dir 함수는 특정 함수이다. 다른 Excel 파일을 얻으려면, 당신은 인수없이 다시 디렉터리 기능을 사용할 수 있습니다.
fileName = Dir()
참고 : 더 이상 파일 이름이 일치하지 않는 경우, Dir 함수 길이가 0 인 문자열 ( “”)을 반환합니다. 그 결과, 엑셀 VBA 루프 동안 할 일을 남겨 둘 것이다.
화면 업데이트와 (루프 외부) 다시 경고 표시에 전원을 켭니다.
Application.ScreenUpdating = True Application.DisplayAlerts = True
-
시험 프로그램.
결과 :