첫째, 데이터 시뮬레이션
질문자가 직면한 문제를 보다 사실적으로 복원하기 위해 각각 2 장의 그림이 포함된 600 개의 Excel 파일을 준비해야 합니다. 수동으로 하나 또는 두 개의 파일을 만들 수 있지만 600 개의 파일입니다!
걱정하지 마세요. 우리가 VBA 로 문제를 해결한다면 반복적인 기계노동을 통해 이런 일을 해결하는 것은 어렵지 않을 겁니다. 우리는 다음 두 장의 그림으로 대체하여 현재 파일 디렉토리에 각각 테스트1.png 와 테스트 2.png 라는 이름을 붙였습니다. 데이터를 시뮬레이션할 때 테스트1.png 를 첫 번째 테이블과 테스트 2 에 삽입합니다. PNG 를 두 번째 워크시트로 가져옵니다.
테스트1.png
Test2.png
단계별 절차:
1: 새 Excel 파일을 작성하여 다른 이름으로 저장합니다. Xlsm 형식입니다.
매크로 통합 문서 사용
2 단계: 새로 생성된 을 엽니다. Xlsm 파일을 선택하고 바로 가기 키 ALT+F 1 1 을 눌러 VBE 인터페이스로 들어갑니다.
VBE 인터페이스로 들어갑니다
3 단계: VBE 프로젝트에 모듈을 삽입합니다.
모듈 테이블 삽입
4 단계: 새로 만든 모듈에 다음 코드를 붙여 넣습니다.
Sub 는 그림이 있는 600 개의 Excel 파일 () 을 생성합니다
화면 지터를 방지하기 위해 새로 고침을 끕니다.
신청하다. 화면 업데이트 = false
변수 I 를 정의합니다.
I 를 정수로 치수기입합니다
I 를 1 주기에서 600 까지 정의합니다.
I = 1 ~ 600 의 경우
워크북을 추가합니다.
연습장. 증가
그림 test 1.png 를 통합 문서의 첫 번째 워크시트에 삽입합니다.
ActiveWorkbook. Sheets (1). pictures.insert (this workbook). 경로 및 경로. "\test 1.png") 를 참조하십시오. 고르다
통합 문서의 두 번째 워크시트에 그림 test2.png 를 삽입합니다.
ActiveWorkbook. Sheets (2). pictures.insert (this workbook). 경로 및 경로. "\test2.png") 를 참조하십시오. 고르다
통합 문서를 현재 경로에 저장합니다.
ActiveWorkbook. 이 워크북으로 저장. 경로 및 경로. "\"& 나 & amp".xlsx "
워크북을 닫습니다
ActiveWorkbook. 닫기
계속 순환하여 새 워크북을 생성합니다.
그리고 나서
화면 새로 고침 재개
신청하다. 화면 업데이트 = true
처리가 완료되면 프롬프트를 표시합니다.
MsgBox "그림이 있는 Excel 파일 600 개가 생성되었습니다!" , VB 정보, "프롬프트 정보"
끝단 접합
5 단계: VBA 코드를 실행하여 필요한 600 개의 Excel 파일을 생성합니다.
VBA 코드 실행
일관된 운영 데모:
운영 데모
둘째, 그림 내보내기
이미 600 건의 사건 서류를 준비했고, 다음 단계는 서류의 사진을 내보내는 것이다.
솔루션:
1. 현재 디렉토리에 있는 모든 Excel 파일을 하나씩 찾습니다.
2. 찾은 Excel 파일을 엽니다.
3. Excel 문서에서 워크시트를 하나씩 찾습니다.
4. 워크시트에서 모든 그림 객체를 찾습니다.
5. 찾은 각 그림을 현재 디렉토리로 내보냅니다.
파일이 많지 않은 경우 위의 생각대로 수동으로 내보낼 수도 있습니다. 사실 VBA 를 통해 문제를 해결하려면 먼저 복잡한 문제를 단순화한 다음, 문제를 단계적으로 분해하고, 결국 완전한 해결책을 형성해야 한다. 위의 데이터 준비 과정에서 VBA 코드 사용에 대해 자세히 설명했습니다. 이번에는 코드를 직접 실행하여 파일의 그림을 내보냅니다.
Sub 는 현재 경로 아래 통합 문서의 그림 () 을 내보냅니다
Dim wk$' 는 통합 문서 파일로 정의됩니다.
Dim I As Integer 는 통합 문서에 있는 워크시트 수를 정의합니다.
Dim ii As Integer 는 워크시트의 객체 수로 정의됩니다.
디더링을 방지하기 위해 새로 고침을 끕니다.
신청하다. 화면 업데이트 = false
첫 번째 통합 문서 파일을 통과합니다.
Wk = Dir(ThisWorkbook) 입니다. 경로 및 경로. "\*.xlsx")
순회하는 파일 이름이 null 과 같지 않을 때.
Wk<& gt ""
파일 이름이 현재 이름과 다를 경우.
Wk<& gt 이 워크북인 경우. 그런 다음 이름을 말하십시오.
순회하는 통합 문서를 엽니다.
연습장. 열기 (ThisWorkbook). 경로 및 경로. "\" & ampwk)
열려 있는 통합 문서 파일에 대해 다음 작업을 수행합니다.
ActiveWorkbook 사용
통합 문서의 각 워크시트를 재활용합니다.
I = 1 끝. Sheets.Count 의 경우
워크시트에서 각 객체 모양을 순환합니다.
Ii = 1 끝 의 경우. 워크시트 (I). 모양. 개수
모양 수를 계산하는 임시 변수입니다.
K = k+1
모양 오브젝트 복사
。 침대 시트 (하나). 모양 (2). 복사
너비와 높이가 객체와 같은 차트 객체를 생성합니다.
그리고. Sheets (I). chartobjects.add (0,0,. 시트 (1). 모양 (2). 폭,. 침대 시트 (하나). 모양 (2). 키). 도표
그림을 삽입하다.
。 붙여 넣기
차트 객체를 내보내 그림을 현재 디렉토리로 내보냅니다.
。 이 워크북을 익스포트합니다. 경로 및 경로. "\"& wk& "_" & K& ".파푸아 뉴기니"
차트를 삭제합니다
. Parent.Delete
로 끝맺다
그리고 나서
그리고 나서
열려 있는 통합 문서를 닫습니다.
。 휴가를 끄다
로 끝맺다
만약 ... 끝날거야
다음 통합 문서를 계속 통과합니다.
Wk = Dir
고리
화면 새로 고침을 켭니다.
신청하다. 화면 업데이트 = true
끝단 접합
그림 내보내기 프레젠테이션