엑셀 매크로 VBA 나의 함수 모든파일에서_오늘날짜_데이타만추출해서_넣기()
Sub 모든파일에서_오늘날짜_데이타만추출해서_넣기()
Dim filesS As Variant '모든 파일(files(S)elected) 넣을 variant형 변수
Dim varTemp As Variant '각 파일을 넣을 variant형 변수
Application.DisplayAlerts = False
Application.ScreenUpdating = False '화면 업데이트기능 정지
filesS = Application.GetOpenFilename(".xls And .xlsx Files(*.xls*),*.xls*", , _
"인쇄할 파일을 모두 선택.", , True) '인쇄할 파일(.xls, xlsx) 모두 선택
On Error Resume Next '에러 발생해도 다음 코드 진행
If TypeName(filesS) = "Boolean" Then Exit Sub '취소 선택시 filesS는 false가 되며 중단
On Error GoTo 0 '에러 검출기능 복원
stname = ActiveSheet.Name
wkname = ActiveWorkbook.Name
Dim sline, eline As Integer
For Each varTemp In filesS '선택한 모든 파일을 순환
With Workbooks.Open(varTemp) '폴더내 각 파일을 열고
Dim grd()
colcount = 16
lines1 = Last_Lines("A")
grd = Range("A6").Resize(lines1, colcount).value
sline = -1
eline = -1
sstr = "2013-10"
estr = "2013-11"
For i = 1 To lines1
str1 = grd(i, 1)
If sline = -1 And Mid(CStr(str1), 1, Len(sstr)) = sstr Then
sline = i
End If
If Mid(CStr(str1), 1, Len(estr)) = estr Then
eline = i
End If
Next
.Close savechanges:=False '열려진 파일 저장하지 않고 닫음
If eline > 0 Then
ReDim grdRe(eline - sline + 1, colcount)
For i = sline To eline
For j = 1 To colcount
grdRe(i - sline, j - 1) = grd(i, j)
Next
Next
If eline > 0 Then
Lines2 = Last_Lines2("B") + 1
Range("A" & Lines2).Resize(eline - sline + 1, colcount) = grdRe
End If
End If
End With
Next varTemp
End Sub
.