자료실

부자는 돈을 써서 시간을 아끼지만 가난한 사람은 시간을 써서 돈을 아낀다

vb6.0/vba

IT HUB를 찾아주셔서 감사합니다.

vb6.0/vba [vba] 필터처럼 검색한 데이터의 병합된 모든 행 숨기기

페이지 정보

profile_image
작성자 하나를하더라도최선을
댓글 0건 조회 5,465회 작성일 20-02-27 02:50

본문

매크로로 필터처럼 검색된 데이터를 숨기거나 표시할 수는 있으나 데이터가 많은경우 올바르지 않습니다.


아래와 같이 10,000개의 데이터중에서 검색한 데이터만 숨겨 보겠습니다.


a96e18e9facd6eb2195b10f3fe171150_1582739115_4475.png



아래처럼 검색 프로시저를 만들었습니다.



Sub program1472_com()
    Cells.EntireRow.Hidden = False
    DoEvents
    Application.ScreenUpdating = False
    Dim C As Range, value As String, v As Variant
    Dim strAddr As String, rng As Range
    Set rng = ActiveSheet.UsedRange
    value = InputBox("검색할 텍스트를 ,로 분리해서 넣으세요")
    For Each v In Split(value, ",")
        Set C = rng.Find(what:=v, lookat:=xlPart) '// XlLookAt 상수인 xlWhole 또는 xlPart 중 하나일 수 있습니다.
        If Not C Is Nothing Then
            strAddr = C.Address
            Do
                C.MergeArea.EntireRow.Hidden = True
                Set C = rng.FindNext(C)
            Loop While Not C Is Nothing And strAddr <> C.Address
        End If
    Next
    MsgBox "완료!!"
End Sub


"02,011,김"  입력후 실행!!


a96e18e9facd6eb2195b10f3fe171150_1582739115_0675.png
a96e18e9facd6eb2195b10f3fe171150_1582739115_1695.png



필터에 비하면 어마어마한 시간이 걸리네요...


a96e18e9facd6eb2195b10f3fe171150_1582739115_2775.png
 

반대로 작업하는건 더 시간이 많이 걸리겠지요..

검색한게 나오게 할려면 찿은 셀을 기억했다가 반대로 숨겨야 하니까요

댓글목록

등록된 댓글이 없습니다.