VBA autofilter에서 필터 Criteria를 변수로 지정하고 싶을 때

VBA
작성자
숩숩
작성일
2021-04-29 16:35
조회
44

안녕하세요, 미리 감사의 인사 드립니다.

엑셀에서 필터를 걸고 해당 영역을 복사하고자 하는데요,

작업 할때마다 필터를 거는 부분의 행, 열이 모두 변동 가능성이 있어(첫행부터 시작도 아니라...)

Inputbox로 범위 지정 후 작업하려 하였으나, 아래 노란색 배경 칠한 코드에서

'개체가 이 속성 또는 메서드를 지원하지 않습니다.'라는 오류가 뜨네요

 

filter_range부분을 Range("~~")로 다 변경해주면 잘 작동되는데 할때마다 수기로 변경하는데 어려움이 있어서요.

방법이 있을까요?

 

Sub autofilter_연습()
 
'롯데카드 필터링
 
    Dim filter_range As Range
    Dim copy_range As Range
 
    Set copy_range = Application.InputBox("복사범위선택", Type:=8)
    Set filter_range = Application.InputBox("필터범위선택", Type:=8)
 
<span style="background-color: #ffff00;">    ActiveSheet.filter_range.AutoFilter Field:=1, Criteria1:="롯데카드" '//범위수정영역</span>
    copy_range.Copy
 
    Worksheets.Add.Name = "롯데카드_복사본"
 
    Worksheets("롯데카드_복사본").Paste Destination:=Worksheets("롯데카드_복사본").Range("B2")
    Worksheets("롯데카드_복사본").Activate
    Range("A1").Select
 
    Application.CutCopyMode = False
 
    '필터풀기
 
 
End Sub

 

감사합니다!

전체 5

  • 2021-04-29 20:06

    아래와 같이 수정하면 필터는 작동할 것입니다.

    ActiveSheet.Range(filter_range.Address).AutoFilter Field:=1, Criteria1:="롯데카드

    '필터풀기
    If ActiveSheet.AutoFilterMode Then
    ActiveSheet.UsedRange.AutoFilter
    End If

     


    • 2021-05-03 11:18

      .Address 추가하니 바로 작동되네요

      좋은 정보 알려주셔서 감사합니다!

      혹시 Copy_range는 따로 .Address 붙일 필요 없었는데, autofilter에서만 붙이는 이유를 알 수 있을까요?


  • 2021-04-29 20:27

    바다가좋다님의 답글에 혹시 동작하지 않으면
    Criteria1:="롯데카드" 문장에서 equal 을 명시적으로 추가하세요.

    아래 처럼,
    Criteria1:="=롯데카드"


  • 2021-04-29 20:43

    질문하신 내용은 위와 같이 하면, 해결될 것으로 판단되며
    정답이 있는 것은 아니지만,
    보편적인 프로그램 로직을 설계하는 것에 대한 몇 말씀 드립니다.

    ① 작업 할때마다 필터를 거는 부분의 행, 열이 모두 변동 가능성이 있어 (첫행부터 시작도 아니라...)
    ▶ 이 부분을 표준화 해야합니다.
    ▶ 발생하는 데이터 영역의 전체 행열을 분석하고
    전체를 표준화 포맷으로 설계해야 합니다.
    그래야만, 개발 이후 유지보수 측면의 생산성이 향상됩니다.

    ② 반복적으로 사용하는 상수를 변수화 하는 것입니다.
    예제를 보면, 시트명 ("롯데카드_복사본") 이 반복되고 있습니다.

    dim cSheetName as string
    cSheetName = "롯데카드_복사본" 으로 하면
    이후 변수명을 사용하므로, 코드의 재사용율이 높아 집니다.

    ③ 오브젝트 사용을 가급적 자제하고, 불가필 할 경우 사용후 메모리에서 릴리즈 하세요.
    Set copy_range = Application.InputBox

    종료 전에
    set copy_range = nothing

    ④ 오브젝트 모델을 잘 살표볼 필요가 있습니다.
    어느 정도 표준화가 되고 나면,
    사실, copy_range 와 filter_range 두개의 오브젝트 중 하나만 사용할 수 있습니다.

    결국은 선택한 범위영역과 데이터를 어떻데 찾아 낼 것인가? 인데,
    copy_range.cells.row
    copy_range.cells.column
    copy_range.cells.count
    copy_range.FormulaR1C1 프로퍼티와 매소드를 살표보세요
    이 부분을 직접 활용할 수 있기 때문입니다.


    • 2021-05-03 11:20

      유용한 기초 정보 공유해주셔서 정말 감사합니다!

      실제 작업하는 파일은 비즈 파트너 사에서 받아 사용하는 파일이라 표준화 요구가 조금 어려운 상황이지만

      접목할 수 있는 기초적인 조언은 모두 반영하였습니다^^ 많은 도움 주셔서 감사합니다.

      오늘도 즐거운 하루 되세요 🙂 !!


전체 2,913
번호 카테고리 제목 작성자 작성일 추천 조회
2901 VBA
New 다른 시트의 값을 참조하여 원하는 시트에서 검색하여 값을 찾아서 넣고 싶습니다. 첨부파일
안동코비 | 09:00 | 추천 0 | 조회 7
안동코비 09:00 0 7
2900 함수/공식
New 엑셀 KakaoAddress 관련 질문입니다. 첨부파일
구루보 | 08:52 | 추천 0 | 조회 3
구루보 08:52 0 3
2899 함수/공식
New 엑셀 문의드립니다.ㅜㅜ 도와주세요. 첨부파일 (2)
주주난 | 2021.05.06 | 추천 0 | 조회 37
주주난 2021.05.06 0 37
2898 기능/도구
New 엑셀공유파일 셀위치 변경 (3) 답변완료
소람 | 2021.05.06 | 추천 0 | 조회 26
소람 2021.05.06 0 26
2897 VBA
New Worksheet Change (또는 SelectionChange)를 Disable하는 매크로 (주석 처리 말고) (2) 답변완료
나는나 | 2021.05.06 | 추천 0 | 조회 21
나는나 2021.05.06 0 21
2896 함수/공식
New 회사들의 구매이력을 한번에 정리하는 방법 (6) 답변완료
젤리 | 2021.05.06 | 추천 1 | 조회 33
젤리 2021.05.06 1 33
2895 함수/공식
New 열에 날짜(월)를 지정해놓고 비어있으면 표시되도록 가능할까요? 첨부파일
꼬꼭꼬 | 2021.05.06 | 추천 0 | 조회 21
꼬꼭꼬 2021.05.06 0 21
2894 함수/공식
New 엑셀 숫자 사이의 알파벳 O -> 숫자 0으로 변환 (2)
#Su | 2021.05.06 | 추천 0 | 조회 27
#Su 2021.05.06 0 27
2893 VBA
New Update_Cbo 관련 첨부파일
루카스 | 2021.05.06 | 추천 0 | 조회 12
루카스 2021.05.06 0 12
2892 문서서식
New 사진자동넣기 첨부파일 (1)
eende**** | 2021.05.06 | 추천 0 | 조회 45
eende**** 2021.05.06 0 45
2891 함수/공식
New index, match 관련 조언이 필요합니다. (2)
LJH | 2021.05.06 | 추천 0 | 조회 33
LJH 2021.05.06 0 33
2890 함수/공식
New SUMPRODUCT 응용함수 질문 (재업로드) 첨부파일 (3)
ddddj31 | 2021.05.05 | 추천 2 | 조회 37
ddddj31 2021.05.05 2 37
2889 VBA
New 구글링에도 없던데 VBA 크롤링 관련 문의 드립니다. (2)
VBA열공 | 2021.05.05 | 추천 0 | 조회 33
VBA열공 2021.05.05 0 33
2888 피벗테이블
New 안녕하세요. 첨부파일 (4) 답변완료
임종복 | 2021.05.05 | 추천 0 | 조회 31
임종복 2021.05.05 0 31
2887 함수/공식
New 시트별 자료와 값을 연동하는 방법 첨부파일
코이노니아 | 2021.05.05 | 추천 0 | 조회 40
코이노니아 2021.05.05 0 40
2886 피벗테이블
New 해찾기 문제에서 제약식 설정하기 첨부파일
| 2021.05.05 | 추천 0 | 조회 27
2021.05.05 0 27
2885 문서서식
New 표를 그림으로 붙여넣기 시 오류?안나게 하는방법 (2) 답변완료
월마리아 | 2021.05.05 | 추천 0 | 조회 44
월마리아 2021.05.05 0 44
2884 VBA
New 네이버 연관검색 & 부동산 크롤링 프로그램이 갑자기 안됩니다. (1)
꽃가마 | 2021.05.04 | 추천 0 | 조회 25
꽃가마 2021.05.04 0 25
VBA
New Re:네이버 연관검색 & 부동산 크롤링 프로그램이 갑자기 안됩니다.
꽃가마 | 2021.05.04 | 추천 0 | 조회 23
꽃가마 2021.05.04 0 23
2883 함수/공식
New [생산관리] 재고-단품 수량을 수주량에 색상으로 구분 표현 첨부파일 (6) 답변완료
sbrlover | 2021.05.04 | 추천 0 | 조회 62
sbrlover 2021.05.04 0 62
2882 함수/공식
New 달력 업무 일지 자동 입력
한마음 | 2021.05.04 | 추천 0 | 조회 49
한마음 2021.05.04 0 49
2881 피벗테이블
New 해찾기 문제에서 제약식 설정 첨부파일 (2)
| 2021.05.04 | 추천 0 | 조회 26
2021.05.04 0 26
2880 VBA
New 조건에 맞는 행 제거하기 첨부파일 (3)
ArkGie | 2021.05.04 | 추천 0 | 조회 47
ArkGie 2021.05.04 0 47
2879 함수/공식
New 원하는 데이터 추출, 표시하는 방법! (2)
LJH | 2021.05.04 | 추천 0 | 조회 57
LJH 2021.05.04 0 57
2878 함수/공식
New 금액이 이름과 은행명에 따라 자동으로 입력되는 방법을 알고 싶습니다 첨부파일 (1)
50 | 2021.05.04 | 추천 -2 | 조회 52
50 2021.05.04 -2 52
2877 함수/공식
백분율 관련 공식을 어떻게 작성해야할지 모르겠네요 ㅠㅠ (1)
naver_60889c2ca519d | 2021.05.04 | 추천 0 | 조회 38
naver_60889c2ca519d 2021.05.04 0 38
2876 함수/공식
엑셀 KakaoAddress 관련 질문입니다. (3) 답변완료
구루보 | 2021.05.04 | 추천 0 | 조회 39
구루보 2021.05.04 0 39
2875 함수/공식
GETPIVOTDATA 함수 REF 오류 (3)
미리감사thank | 2021.05.03 | 추천 0 | 조회 33
미리감사thank 2021.05.03 0 33
2874 VBA
[VBA] inputBox 를 통한 제품검색 vlookup 질문입니다. (8)
제펠 | 2021.05.03 | 추천 1 | 조회 43
제펠 2021.05.03 1 43
2873 VBA
안녕하세요 참조에러의 위치를 찾을 수 있을까요? (4)
칭구 | 2021.05.03 | 추천 0 | 조회 49
칭구 2021.05.03 0 49
2872 기능/도구
순환참조 팝업 해결문의 첨부파일 (3)
현정이 | 2021.05.03 | 추천 0 | 조회 41
현정이 2021.05.03 0 41