【VBA】 3개 이상의 키워드로 AutoFilter를 이용하는 경우

3517 단어 VBAExcel

배경


  • 데이터 가공시, 이하의 사양으로 하고 싶기 때문에, 가능한지 조사.
  • AutoFilter에 설정할 키워드를 3개 이상으로 설정하고 싶습니다.
  • 설정하는 키워드는, 시트내에 기술해, 거기로부터 추가나 삭제를 실시할 수 있도록(듯이) 하고 싶다.
  • 키워드는 정확히 일치 검색으로 수행됩니다.

  • 이번은 작업열을 이용한 배열에서의 오토 필터 설정을 기술.

  • 결과


  • 다음과 같은 데이터와 키워드가 들어있는 시트 2개를 준비한다.
  • ※지정 키워드의 추가나 삭제를 Sheet2만으로 실시할 수 있도록, 「키워드수」는 count 함수등으로 취해 둔다.





  • 다음 VBA를 설명한다.
  • Sub main()
        ' 変数定義
        Dim ws1 As Worksheet, ws2 As Worksheet, targetnumber As Long, targetArray
        Set ws1 = Sheets("Sheet1")
        Set ws2 = Sheets("Sheet2")
        targetnumber = ws2.Range("B2")  ' キーワード数
        ' キーワードの配列変換処理。セル範囲を二次元配列から一次元配列に変換
        targetArray = WorksheetFunction.Transpose(ws2.Range("A2:A" & targetnumber + 1))
        ' オートフィルター処理
        ws1.Range("A1").AutoFilter 2, targetArray, xlFilterValues
    End Sub
    
  • 상기의 main 함수를 실행해, 다음과 같은 결과가 되면 완료.



  • 참고


  • AutoFilter 필터링
  • transpose 함수
  • 좋은 웹페이지 즐겨찾기