작업 결과를 백업파일에 자동 저장하기
엑셀로 데이터를 처리한 후 이를 특정파일에 일일이 저장하는 것은 생각보다 번거로운 일입니다.
가끔 잊어버리는 경우 백업본이 생성되지 않아 작업결과를 잃어버리기도 하지요.
아래 코드는 자료 처리를 완료한 후 새로운 엑셀 파일을 만들거나 기존 파일에 작업결과를 저장하는 코드입니다.
' 시트를 새로 만든다.
' 현재 작업 파일 정보를 저장한다.
orgBookName = ActiveWorkbook.Name
'먼저 기존 파일 존재 여부 체크함.
dFile = "C:\temp\result\"
fFile = "점검결과-" & Year(Date) & Month(Date) & ".xlsx"
newFileName = dFile & fFile
Set fs = CreateObject("Scripting.FileSystemObject")
fileChkTF = fs.fileexists(newFileName)
'만약 파일이 있으면 기존 파일에 시트를 추가하고 시트명을 부여함.
If fileChkTF = True Then
Workbooks.Open newFileName
' 첫번째 시트 앞에 상세시트 추가
Sheets.Add before:=Sheets(1)
' 시트명이 중복되지 않도록 시분초를 붙임
Sheets(1).Name = "점검결과상세-" & Date & Hour(Time) & Minute(Time) & Second(Time)
'첫번째 시트 앞에 결과 시트 추가
Sheets.Add before:=Sheets(1)
Sheets(1).Name = "점검결과-" & Date & Hour(Time) & Minute(Time) & Second(Time)
' 만약 파일이 없으면 새로 파일을 만들어 시트명을 변경함.
Else
Workbooks.Add
ActiveWorkbook.SaveAs Filename:=newFileName, FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
Sheets(1).Name = "점검결과-" & Date & Hour(Time) & Minute(Time) & Second(Time)
Sheets(2).Name = "점검결과상세-" & Date & Hour(Time) & Minute(Time) & Second(Time)
End If
'작업 파일 활성화, 시트 선택후 작업결과부분 복사
Workbooks(orgBookName).Activate
Sheets(2).Select
ccCnt = Cells(5, 3)
Range(Cells(3, 8), Cells(abCnt, 12)).Copy
' 백업 파일을 활성화하여 붙여 넣기
Workbooks(fFile).Activate
Sheets(1).Select
Cells(2, 1).Select
ActiveSheet.Paste
' 필요할 경우 번호를 자동 부여 함.
Cells(2, 1) = 1
Cells(3, 1) = 2
Range("a2:a3").Select
Selection.AutoFill Destination:=Range(Cells(2, 1), Cells(20000, 1))
Cells(1, 1) = "제목"
Cells(1, 2) = "세부내용"
Cells(1, 3) = "수량"
Cells(1, 4) = "비고"
' 다시 작업 파일 활성화 후 복사
Workbooks(orgBookName).Activate
Sheets(2).Select
hcCnt = Cells(2, 17)
Range(Cells(2, 16), Cells(hcCnt + 2, 18)).Copy
' 두번째 시트에 내용 입력
Workbooks(fFile).Activate
Sheets(2).Select
Cells(2, 1).Select
ActiveSheet.Paste
Cells(1, 1) = "날짜"
Cells(1, 2) = "제목"
Cells(1, 3) = "결과수"
' 저장후 종료
ActiveWorkbook.Close SaveChanges:=True
'점선 모양 반짝이는 선택 창을 비활성화
Application.CutCopyMode = False
' 가장 앞 셀로 이동
Cells(1, 1).Select
'MACRO > EXCEL-MACRO' 카테고리의 다른 글
함수 2. count 함수 사용 (0) | 2013.06.13 |
---|---|
함수 사용 1, if함수와 isna, 그리고 vlookup 사용하기 (0) | 2013.06.12 |
매크로와 함수 비교 (0) | 2013.04.19 |
세금 계산 하는 로직입니다. (0) | 2013.04.19 |
엑셀매크로] 리스트의 파일을 열어서 시트명과 셀값을 복사해오기 (0) | 2013.01.22 |