2013-08-02 2 views
0

다른 페이지의 값을 기준으로 필터링하는 파일입니다. 내 질문은 목록 열에 값이없는 경우 필드를 무시할 수있는 방법은 무엇입니까?목록 시트에서 필터링하기

지금 모든 목록 값을 입력하지 않으면 오류가 발생합니다. 목록 값은 사진의 Criteria_C 등입니다.

감사

나는 그것이 하나 개 이상의 결과를 보여합니까 방법 또한

?

Sub Proto() 


Dim cList As Variant 
Dim ccList As Variant 
Dim uList As Variant 
Dim towList As Variant 
Dim aList As Variant 
Dim pmList As Variant 

Dim wsP As Worksheet 
Dim wsL As Worksheet 
Dim rng_C As Range 
Dim rng_CC As Range 
Dim rng_U As Range 
Dim rng_ToW As Range 
Dim rng_A As Range 
Dim rng_PM As Range 
Dim rng_Projects As Range 

Set wsP = Worksheets("Projects") 
Set wsL = Worksheets("Lists") 
Set rng_Projects = wsP.Range("$B$6").CurrentRegion 

Set rng_C = wsL.Range("List_C") 
Set rng_CC = wsL.Range("List_CC") 
Set rng_U = wsL.Range("List_U") 
Set rng_ToW = wsL.Range("List_ToW") 
Set rng_A = wsL.Range("List_A") 
Set rng_PM = wsL.Range("List_PM") 

cList = rng_C.Value 
ccList = rng_CC.Value 
uList = rng_U.Value 
towList = rng_ToW.Value 
aList = rng_A.Value 
pmList = rng_PM.Value 

rng_Projects.AutoFilter Field:=2, Criteria1:=Application.Transpose(cList) 
rng_Projects.AutoFilter Field:=3, Criteria1:=Application.Transpose(ccList) 
rng_Projects.AutoFilter Field:=4, Criteria1:=Application.Transpose(uList) 
rng_Projects.AutoFilter Field:=5, Criteria1:=Application.Transpose(towList) 
rng_Projects.AutoFilter Field:=7, Criteria1:=Application.Transpose(aList) 
rng_Projects.AutoFilter Field:=8, Criteria1:=Application.Transpose(pmList), Operator _ 
    :=xlFilterValues 
End Sub 

enter image description here

답변

1

당신은 배열이 거기에 값이 있는지 여부를 확인하거나 필터로 설정하지 전에. 예를 들어 당신이 어떤 값이없는 경우, 다음과 같은 코드를 사용할 수 있습니다 "Criteria_C"를 건너려면 :

If Not IsEmpty(cList) Then rng_Projects.AutoFilter Field:=2, _ 
           Criteria1:=Application.Transpose(cList) 
는 는

코드는 당신이 당신의 테이블의 데이터가있는 경우 여러 결과를 보여 주어야하는 일치 귀하가 표시하는 모든 필터 기준. 여러 기준 (예 : "FEMA"및 "AU")을 사용하려면 매크로가 실행되기 전에 "List_C"범위를 확장해야합니다.

+0

저에게주는 느낌입니다. 그래서 이것은 대체 rng_Projects.AutoFilter Field : = 2, Criteria1 : = Application.Transpose (cList)? –

+1

예이 코드 줄은'rng_Projects.AutoFilter Field : = 2, Criteria1 : = Application.Transpose (cList)'를 대체합니다. 보고있는 오류가 무엇입니까? – Jaycal

+0

실행 시간 오류 1004 메서드 범위 Worsheet 실패 –

관련 문제