현재는 unlike the data presented here이 아닌 메인 프레임의 데이터로 작업하고 있습니다. 이 경우, 내 기준과 목표 데이터 세트에 대해 100-AAA와 유사한 문자열이 있습니다. 비슷한 솔루션을 찾았지만 VBA에 대한 범위 질문에서 직접 필터를 찾지 못했습니다.범위를 기준으로 필터링 열 VBA
다양한 범위의 기준에 따라 큰 데이터 집합을 필터링하려고합니다.
Sub FilterTest1()
Dim RngOne As Range
Dim LastCell As Long
Sheets("Criteria").Activate
Sheets("Criteria").Select
Range("A1").Select
LastCell = Application.WorksheetFunction.CountA(ActiveSheet.Range("A:A"))
Set RngOne = ActiveSheet.Range("A2:A" & LastCell)
Sheets("Sheet 1").Activate
Sheets("Sheet 1").Select
With ActiveSheet
If .FilterMode Then
.ShowAllData
End If
End With
Columns("A:A").Select
Selection.AutoFilter
ActiveSheet.Range("A:A").AutoFilter Field:=1, Criteria1:=RngOne, Operator:=xlOr
End Sub
불행하게도, 세포 내 범위는 데이터를 필터링하지 않는 경우에도, 다음과 같이, 원래, 나는 별도의 클래스/서브 루틴의 컬렉션과 함께 연주하기 시작,하지만 난 하나의 서브 루틴 내에서 범위의 사용으로 압축 Operator:=xlOr
과 같은 기준을 사용하면 기준에 사용 된 마지막 셀 값만 표시됩니다. VBA 코드가 실패하지 않습니다 - 그냥 범위를 기반으로 제대로 필터링하지 않습니다.
나는 간단한 해결책이 존재한다는 것을 확신하지만 나는 그것을 꽤 볼 수 없다.
SQL 명령을 사용하여 필터링을 수행 할 수 있지만 (여전히 Excel을 사용하는) ADO를 사용하는 것이 좋습니다. 귀하의 기준과 데이터 세트 간의 내부 조인을 수행하면 계산서에 맞을 수도 있습니다. – barrowc
비슷한 질문에 대한이 초기 답변이 도움이됩니까? - http://stackoverflow.com/a/7863452/53614? 나는 관리자 권한이없는 직장에서 ADO를 사용하며 정상적으로 작동합니다. YMMV하지만 그럴 가치가있다. – barrowc
좋아. 나는 주말에 그 기회를 포기하고 다음 주 초에 그것이 어떻게 전개되는지 보게 될 것이다.SQL에 의존하는 것이 장기적으로 훨씬 더 빨리 실행될 가능성이 있기 때문에 ADO를 사용하여 대규모 데이터 세트에 사용할 가치가 있습니다. 그것이 작동한다면 잘 당신의 대답 =)에 대한 또 다른 +1을 의미합니다 – JackOrangeLantern