매크로 기록을 vba 로 작성해서 압축하고싶습니다 !! 고수분 조언 부탁드립니다
VBA
작성자
최우진
작성일
2023-01-12 15:13
조회
1063
필터를 사용하여 빈셀을 삭제하려하는데요
데이터가 너무 많아서 너무 오래걸려 vba로 조금 더 빠르게 하는법을 공부하고있습니다 .
현재
Sub 데이터정리()
ActiveSheet.Range("$F$8:$G$86408").AutoFilter Field:=1, Criteria1:="="
Range("G9:AN86408").SpecialCells(xlCellTypeVisible).Select
Selection.ClearContents
ActiveSheet.Range("$F$8:$G$86408").AutoFilter Field:=1
End Sub
위와같이 매크로 기록을 통해서 데이터를 정리하고 있는데 이걸 더 빨리돌아갈수 있게
쓸만한 함수가 있을지 도움부탁드립니다
전체 18,476
번호 | 카테고리 | 제목 | 작성자 | 작성일 | 추천 | 조회 |
[📚진짜쓰는 실무엑셀] IT/오피스 '1위' 베스트셀러! 엑셀 공부, 이 교재로 마스터하세요! (313)
![]() ![]() |
![]() ![]() |
2022.02.03 | 573 | 600972 | ||
공지사항 | 문서서식 |
⭐ [더 나은 커뮤니티 문화를 위한 Q&A 글 작성 규칙] ⭐
(197)
오빠두엑셀
|
2021.10.28
|
추천 310
|
조회 34973
|
![]() ![]() |
2021.10.28 | 310 | 34973 |
78431 | VBA |
New IF 조건문 기초 질문 드립니다.
![]() ![]() |
![]() |
00:46 | - | 61 |
78428 | 기능/도구 |
New 보이는 범위의 셀로만 붙여넣기하는 법
![]() ![]() |
![]() |
2025.04.29 | - | 86 |
78424 | 함수/공식 |
New 생년월일 6자리로 나이 계산 어떻게 하나요?
(7)
![]() |
![]() |
2025.04.29 | - | 93 |
78421 | 함수/공식 |
New INDEX + MATCH 함수 문의
(2)
![]() |
![]() |
2025.04.29 | - | 87 |
78420 | 함수/공식 |
New 여러시트 중에 같은내용을 찾기
![]() ![]() ![]() |
![]() |
2025.04.29 | - | 71 |
78419 | 문서서식 |
New 크기가 다른 셀에서의 필터 걸기 부탁드립니다 !
![]() ![]() |
![]() |
2025.04.29 | - | 59 |
78418 | 함수/공식 |
New [퀴즈] 텍스트 압축/변형하기
![]() ![]() ![]() |
![]() |
2025.04.29 | - | 114 |
78416 | VBA |
New 시트보호된 상태에서 매크로 작동시 Range 클래스 중 Insert 메서드에 오류가 있습니다.
![]() ![]() |
![]() |
2025.04.29 | - | 53 |
78414 | 파워쿼리/피벗 |
New 다른 엑셀 파일에서 필요한 값만 불러오는 방법
![]() ![]() |
![]() |
2025.04.29 | - | 60 |
78413 | 함수/공식 |
New 경과주 구하는 수식 문의
(1)
![]() |
![]() |
2025.04.29 | - | 58 |
78411 | 문서서식 |
New 숫자 문자인식 숫자변환하는 법
![]() ![]() |
![]() |
2025.04.29 | - | 75 |
78410 | VBA |
New [매크로관련] 특정셀 자동증가하며, 연속출력할수 있을까요?
![]() ![]() |
![]() |
2025.04.29 | - | 87 |
78408 | 문서서식 |
New 숫자 서식 변경하기
![]() ![]() |
![]() |
2025.04.29 | - | 64 |
78407 | 기능/도구 |
New 원드라이브 MICROSOFT 365 사용중 공동작업시 필터
![]() ![]() |
![]() |
2025.04.29 | - | 55 |
78402 | 함수/공식 |
New 괄호안의 시간:분 데이터를 분으로 합산하는 방법 질문드립니다.
![]() ![]() ![]() |
![]() |
2025.04.28 | - | 68 |
78400 | 함수/공식 |
New 2차배열에서 countif
![]() ![]() |
![]() |
2025.04.28 | - | 89 |
78399 | 함수/공식 |
New 한달의 마지막주 스케쥴 작성시 전주까지의 휴무 누적 합계 구하는 방법이 궁금합니다.
![]() ![]() ![]() |
![]() |
2025.04.28 | - | 54 |
78398 | VBA |
New VBA 매크로 여러 엑셀 파일에서 사용
(1)
![]() |
![]() |
2025.04.28 | - | 85 |
78396 | 함수/공식 |
New 직원별로 근태 합계를 확인하고 싶어요
![]() ![]() |
![]() |
2025.04.28 | - | 117 |
78395 | 함수/공식 |
New 특정 단어를 포함한 행 골라내는 방법에 대해 문의드립니다.
(3)
답변완료
![]() |
![]() |
2025.04.28 | - | 76 |
78392 | 함수/공식 |
New 도와주세요... ( 특정값에 해당하는 반 번호 찾아 목록만들기)
![]() ![]() ![]() |
![]() |
2025.04.28 | - | 82 |
78389 | 기능/도구 |
New 오빠두LIVE 196회 - 엑셀 프로젝트 관리 _ 일,주 바꾸는법
![]() ![]() |
![]() |
2025.04.28 | - | 72 |
78387 | 함수/공식 |
New 엑셀 관련 질문입니다. SUM과 IFERROR 입니다 ㅠ
(6)
![]() |
![]() |
2025.04.27 | - | 119 |
78382 |
New Excel 추세선 이상
![]() ![]() |
![]() |
2025.04.27 | - | 89 | |
78381 | 함수/공식 |
New 같은 이름 N 번째 데이터
![]() ![]() ![]() |
![]() |
2025.04.27 | 1 | 124 |
78380 | 함수/공식 |
New On Error Resume Next 문구를 삽입하는 위치는?
(2)
답변완료
![]() |
![]() |
2025.04.27 | - | 94 |
78376 | 함수/공식 |
New 지역별 증감금액 확인
![]() ![]() |
![]() |
2025.04.26 | - | 86 |
78374 | 함수/공식 |
New index를 활용한 조건에 맞는 금액을 찾는 방법
![]() ![]() ![]() |
![]() |
2025.04.26 | - | 105 |
78372 | 기능/도구 |
New 표서식 차이 문의
![]() ![]() |
![]() |
2025.04.25 | - | 74 |
78370 | 피벗테이블 |
New (피벗테이블) 2024년 2025년 판매 TOP10 비교데이터
![]() ![]() |
![]() |
2025.04.25 | - | 109 |
@최우진 님 아래 코드를 시작부분에
Application.ScreenUpdating = False
Application.EnableEvents = False
Application.Calculation = xlCalculationManual
아래를 끝부분에 추가하는 것 외에는 별로,,,
Application.ScreenUpdating = True
Application.EnableEvents = True
Application.Calculation = xlCalculationAutomatic
@원조백수 님 크게는 압축하거나 단축할수 없나보군요 ..
그래도 추가해주신 명령어 앞 뒤에 붙이니까 조금 더 빨라졌습니다 !!
답변 감사합니다 ^-^
@최우진 님 몇 분씩 걸리는 작업이라면,,, 삭제가 아니라 지우는 작업이므로 Array를 이용하면 좀 빨라질 수 있을 듯 하나
실제 파일에서 해봐야 알 수 있을 듯 하네요.
실제로 많은 행의 필터를 걸고 푸는 게 많은 부하를 가져갈 수 있으니까요...
9~86408행까지 F열이 빈셀인 것들에 대해서 "G:AN" 셀의 내용을 지우는 것이니까...
대강 아래처럼 해 보시고 시간을 비교해 보세요.
(그냥 타이핑 한 것이라 오류 발생할 수 있습니다.ㅡ,.ㅡ)
fArray = Range("F1:F86408").Value2
dArray = Range("G1:AN86408").FormulaLocal
For i = 8 to Ubound(fArray, 1)
If fArray(i, 1) = vbNullString then
For j = 1 to Ubound(dArray, 2)
dArray(i, j) = vbNullString
Next J
End IF
Next i
Range("G1").Resize(Ubound(dArray,1), Ubound(dArray, 2)).FormulaLocal = dArray
@원조백수 님 앗 늦게발견했습니다 ..
적용한번 해봐야겠네요 ㅎㅎ
끝까지 답변해주셔서 감사드립니다 새해 복 많이받으세요 !!