엑셀

엑셀 매크로 VBA 나의 함수 모든파일에서_오늘날짜_데이타만추출해서_넣기()

아스C# 2018. 11. 19. 00:30
반응형




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








.




반응형