VBA 2007버전과 2021버전에서의 속도 차이가 많이 납니다. 해결방안이 있을까 해서요?

VBA
작성자
한정석
작성일
2021-11-29 13:54
조회
246
엑셀버전 : 엑셀2010 이전

운영체제 : 윈도우10

첨부파일 오픈하게 되면 전체공종이란 버튼이 있습니다.

전체공종버튼의 기능은 "목록별산출서" 시트의 항목을 "중복된항목제거"시트에서 정리한후 "내역서" 시트로 가져오는 기능입니다.

이 기능이 엑셀 2007버전에서는 1초 미만으로 실행이 되는데, 엑셀 2021 버전에서는 1분30초 정도가 소요됩니다.

원인을 알고싶어 글올립니다.

전체 4

  • 2021-11-29 20:44

    Calculation 이랑 Event 모드도 같이 수정해보세요. 제 pc에서는 0.3초가량 나오네요

    Option Explicit
    Option Base 1
    
    Sub 산출서계산()
    Dim i, j, k            As Long
    Dim rngDb, c      As Range
    Dim oldTime     As Single
        
        Application.ScreenUpdating = False        '화면 업데이트 (일시) 정지
        Application.Calculation = xlCalculationManual
        Application.EnableEvents = False
        
        oldTime = Timer
      
        ' 수식계 넣기
        Dim V1(65000)
        Set rngDb = Range("E5:E65000")
        i = 4
        k = 0
        For Each c In rngDb
            k = k + 1
            i = i + 1
            Select Case c
                Case ""
                        V1(k) = ""
                Case "산 출 수 식"
                        V1(k) = "수식계"
                Case Else
                        'V1(k) = "=egTextCal(E" & i & ")" '수식입력방식
                        V1(k) = egTextCal(c.value)  '계산결과방식
            End Select
        Next
        Range("F5").Resize(UBound(V1), 1) = Application.Transpose(V1)
        Erase V1
        Set rngDb = Nothing
    
        ' 단위계 넣기
        Dim V2(65000)
        Set rngDb = Range("K5:K65000")
        i = 4
        k = 0
        For Each c In rngDb
            k = k + 1
            i = i + 1
            Select Case c
                Case ""
                        V2(k) = ""
                Case "단위수식"
                        V2(k) = "단위계"
                Case Else
                        'V2(k) = "=egTextCal(K" & i & ")" '수식입력방식
                        V2(k) = egTextCal(c.value)  '계산결과방식
            End Select
        Next
        Range("L5").Resize(UBound(V2), 1) = Application.Transpose(V2)
        Erase V2
        Set rngDb = Nothing
        
        
        Application.CutCopyMode = False
        Application.ScreenUpdating = True
        Application.Calculation = xlCalculationAutomatic
        Application.EnableEvents = False
        
        MsgBox "총 " & Format(Timer - oldTime, "#0.00") & " : 초 소요"
            
    End Sub
    
    

     

    Screenshot_1.png


    • 2021-11-30 07:37

      @엑셀은즐거워 님 답변 감사합니다.

      그러나 제가 질문하고자하는 내용은 첨부파일 열면 "내역서" 시트의 전체공종버튼에 연결된 코드 부분입니다.

      엑셀은 즐거운님이 테스트해주신 코드는 제 PC에서도 잘 되구요.

      시간되시면 다시한번 부탁드려봅니다.


  • 2021-12-01 14:55

    아마 범위를 Union 으로 합쳐줘서 그런 것 같습니다. 제 pc에서는 2분넘게 돌아가네요.

    Dictionary나 배열로 수정해주면 될 것 같습니다. Timer로 중단점 넣어서 확인해보세요. For 문에서 지연되는 걸 확인할 수 있습니다.


  • 2021-12-01 16:31

    답변감사합니다. 특별한  코드 수정이 없어도 2007버전에서는 빠르게 실행되는 데 2021버전에서는  느리게 실행되는 이유는  무엇일까요?


전체 5,151
번호 카테고리 제목 작성자 작성일 추천 조회
알림
하루 딱 "1분", 진짜 쓰는 엑셀 꿀팁 👉 "오빠두엑셀" 인스타그램 오픈! (28)
트로피 오빠두엑셀 | 2021.10.12 | 추천 22 | 조회 770
트로피 오빠두엑셀 2021.10.12 22 770
공지사항 공지사항
⭐ [더 나은 커뮤니티 문화를 위한 Q&A 글 작성 규칙] ⭐ (21)
오빠두엑셀 | 2021.10.28 | 추천 28 | 조회 2401
트로피 오빠두엑셀 2021.10.28 28 2401
26146 VBA
New 텍스트 1 행씩 자동입력 및 표 2개 합치는 방법 첨부파일 (1)
마운틴 | 02:38 | 추천 0 | 조회 15
마운틴 02:38 0 15
26144 함수/공식
New now()함수로 얻은 최초의 시간을 상수로 사용하고 싶습니다. (1)
SAFETY.RKTL | 01:09 | 추천 0 | 조회 15
SAFETY.RKTL 01:09 0 15
26143 VBA
New 엑셀 타이머 종료시 알림음 출력 가능한가요? 첨부파일 (1)
을지지뢰 | 00:59 | 추천 0 | 조회 15
을지지뢰 00:59 0 15
26141 함수/공식
New 다중 유효성검사 수식관련문의 첨부파일
hyun944@naver.com | 00:25 | 추천 1 | 조회 16
hyun944@naver.com 00:25 1 16
26135 함수/공식
New 필터 기능 대체 함수 첨부파일
sio**** | 2022.01.19 | 추천 -1 | 조회 22
sio**** 2022.01.19 -1 22
26126 VBA
New 엑셀 타이머 런타임 오류해결 좀 부탁드립니다. 첨부파일 (2) 답변완료
을지지뢰 | 2022.01.19 | 추천 0 | 조회 38
을지지뢰 2022.01.19 0 38
26122 함수/공식
New 불규칙한 숫자만큼 반복되는 데이터 입력 ,, 고수님들 도와주세요 ㅠ_ㅠ 첨부파일 (3)
응빙 | 2022.01.19 | 추천 0 | 조회 39
응빙 2022.01.19 0 39
26120 VBA
New 그림단추 구현 VBA 첨부파일 (2) 답변완료
007 | 2022.01.19 | 추천 0 | 조회 44
007 2022.01.19 0 44
26118 VBA
New VBA 고수 분들 보시면 제발 도와주세요. 첨부파일 (3)
new_hwan | 2022.01.19 | 추천 0 | 조회 44
new_hwan 2022.01.19 0 44
26113 기능/도구
New 자동필터 검색 누락 첨부파일 (6) 답변완료
김정열 | 2022.01.19 | 추천 0 | 조회 41
김정열 2022.01.19 0 41
26105 함수/공식
New "월"을 기입하면 전월 당월 매출이 나오게 하고싶은데 도와주세요 ㅠ (10) 답변완료
따뜻한아메리카노 | 2022.01.19 | 추천 0 | 조회 55
따뜻한아메리카노 2022.01.19 0 55
26104 VBA
New 자료찾기 vba 문의드립니다. (5) 답변완료
ㅈㄱㄹ | 2022.01.19 | 추천 0 | 조회 43
ㅈㄱㄹ 2022.01.19 0 43
26089 기능/도구
New 한 시트에 다수의 규칙이 적용되어있을 때 항목을 정리하는 방법을 찾고 있습니다. 첨부파일 (6) 답변완료
피단 | 2022.01.18 | 추천 0 | 조회 44
피단 2022.01.18 0 44
26087 함수/공식
New vlookup 관련? 같은 값일 때 그 행의 값을 불러오기 첨부파일 (3) 답변완료
키몽쓰 | 2022.01.18 | 추천 0 | 조회 70
키몽쓰 2022.01.18 0 70
26085 함수/공식
New 엑셀 함수 궁금해요! 첨부파일 (3)
양킴 | 2022.01.18 | 추천 0 | 조회 52
양킴 2022.01.18 0 52
26079 함수/공식
New 도와주세요 예전에 잠깐 본적이 있는 강의인데 못찾겠어요 (1)
딸기아빠 | 2022.01.18 | 추천 0 | 조회 38
딸기아빠 2022.01.18 0 38
26078 함수/공식
New sumif 오류 관련 첨부파일 (3)
논바닥 | 2022.01.18 | 추천 0 | 조회 37
논바닥 2022.01.18 0 37
26068 함수/공식
New 다른쉬트 값 불러 오기 (VLOOKUP 안될 시) 첨부파일 (3)
벗님들 | 2022.01.18 | 추천 -1 | 조회 67
벗님들 2022.01.18 -1 67
26067 함수/공식
New 도와주세요! 목록 별 수량 합산이 필요한데 가능한지 확인 부탁 드릴게요! 첨부파일 (10) 답변완료
monom | 2022.01.18 | 추천 0 | 조회 54
monom 2022.01.18 0 54
26058 기능/도구
New 자동필터 복사 범위 풀림 오류 (1)
허영진 | 2022.01.18 | 추천 0 | 조회 39
허영진 2022.01.18 0 39
26050 함수/공식
New 행과 열의 합의 함수를 알고 싶어요! (3)
Goldhajin | 2022.01.18 | 추천 1 | 조회 65
Goldhajin 2022.01.18 1 65
26041 VBA
New 일정시간이 지나면 MsgBOX로 알림창이 뜨게 하고싶습니다. (4) 답변완료
을지지뢰 | 2022.01.17 | 추천 0 | 조회 63
을지지뢰 2022.01.17 0 63
26035 함수/공식
New 특정날짜와 시간 고정해서 데이터 추출방법 도와주세요 (5)
박현욱 | 2022.01.17 | 추천 0 | 조회 48
박현욱 2022.01.17 0 48
26033 함수/공식
New 필터 함수를 인덱스 매치 함수로 변환하는 어려움 첨부파일 (4) 답변완료
미르 | 2022.01.17 | 추천 0 | 조회 41
미르 2022.01.17 0 41
26030 함수/공식
New 원본표에서 일정 조건의 내용을 추출하여 새로운 표에 자료 넣기 첨부파일 (2)
알면서 | 2022.01.17 | 추천 0 | 조회 39
알면서 2022.01.17 0 39
26029 기능/도구
New 필터에서 상하위 % 추출 안됨 오류 첨부파일 (3)
알면서 | 2022.01.17 | 추천 0 | 조회 26
알면서 2022.01.17 0 26
26026 함수/공식
New 한 셀에 입력된 문장 중 조건에 만족하는 문장 개수 함수 (5)
삐약이 | 2022.01.17 | 추천 0 | 조회 41
삐약이 2022.01.17 0 41
26025 기능/도구
New 셀 내용을 지우면 특정 셀 내용도 같이 삭제되는 기능? 첨부파일 (3) 답변완료
올리주인 | 2022.01.17 | 추천 1 | 조회 51
올리주인 2022.01.17 1 51
26023 VBA
New VBA 사용자정의폼 show 0 명령어 (1) 답변완료
병욱 | 2022.01.17 | 추천 0 | 조회 42
병욱 2022.01.17 0 42
26022 VBA
New 거래처별 파일 나누기 첨부파일
silli**** | 2022.01.17 | 추천 0 | 조회 44
silli**** 2022.01.17 0 44