참고로 다음의 내용은 컴퓨터활용능력 자격시험과는 상관 없는 내용입니다.
제가 취미로 하는 VBA 코드입니다. Visual Basic Application에 관심 있으신 분들을 위한 내용입니다
GitHub - BigshiningYU/VBA_auto_Labelform: Using EXCEL VBA, you can merge the file and edit data for making formtec label
Using EXCEL VBA, you can merge the file and edit data for making formtec label - GitHub - BigshiningYU/VBA_auto_Labelform: Using EXCEL VBA, you can merge the file and edit data for making formtec l...
github.com
다음의 코드를 이용하면 같은 폴더 내의 여러 개의 엑셀파일을 복사하여
하나의 엑셀파일로 만들 수 있습니다.
원하는 VBA 프로그램을 만들기 위한 팁
1) Macro 이용하기
2) MS 포럼 이용하기
3) 시중의 VBA 서적 이용하기
<프로그램 설명 영상>
<Filedialog(대화상자) 이용해서 파일 내용 복사하기 (Main 실행)>
소스코드
Sub SearchFile()
Dim strwkbook As String
strwkbook = ThisWorkbook.Path
ChDir (strwkbook)
'dialog 열어 복사할 workbooks 선택하기
Dim fd As FileDialog
Dim pathSelectedItem As Variant
Set fd = Application.FileDialog(msoFileDialogFilePicker)
fd.AllowMultiSelect = True
If fd.Show = -1 Then ' -1은 파일 선택한 경우, 0은 파일 선택하지 않음
For Each pathSelectedItem In fd.SelectedItems
' fd.selectedItems에는 선택된 파일의 경로들을 포함하고 있습니다
' for i in {1,2,3} 과 같음
'선택한 엑셀파일 열기
Workbooks.Open Filename:=pathSelectedItem
'워크북 열기 workbooks.open Filename:="Book1.xlsx"
Cells.Select
Selection.Copy
Workbooks.Open Filename:=ThisWorkbook.Name
Sheets.Add After:=ActiveSheet
ActiveSheet.Paste
'시트 이름 바꾸기
Dim fname As String
fname = Mid(pathSelectedItem, InStrRev(pathSelectedItem, "\") + 1)
ActiveSheet.Name = fname
' MID 함수 인수 (문자열, 시작위치, 길이(선택사항) )
' -> MID("abcdef", 3) -> "cdef"
' InStrRev(문자열, 찾을 문자) -> 문자열의 오른쪽부터 검색하여 찾을 문자 위치를 반환하는 함수
'엑셀파일 닫기
Application.CutCopyMode = False
Workbooks(fname).Close
Next pathSelectedItem
End If
Worksheets(1).Activate
End Sub
*같은 폴더 내에 불러올 파일과 아래의 코드를 담은 xlsm 파일을 위치시켜야 error가 발생하지 않습니다.
'투자 > 컴활탈출기' 카테고리의 다른 글
엑셀 배열수식 활용 컴활 1급 대비 (0) | 2021.12.31 |
---|---|
컴활 1급 <외부자료별 피벗테이블 만들기> (0) | 2021.12.30 |
VBA auto label 마무리 (0) | 2021.12.30 |
VBA 4가지 조건에 따라 정렬하기 (0) | 2021.12.30 |
VBA 빈 행 없애기 (0) | 2021.12.27 |