Computer >> 컴퓨터 >  >> 소프트웨어 >> Office

Excel에서 VBA를 사용하여 특정 값과 같지 않은 값을 자동 필터링하는 방법

이 기사에서는 VBA를 사용하여 특정 값과 같지 않은 값을 자동 필터링하는 방법을 보여 드리겠습니다. 엑셀에서. 선택한 셀 범위와 전체 워크시트에서 값을 자동 필터링하는 방법을 배웁니다.

Excel에서 VBA를 사용하여 특정 값과 같지 않은 자동 필터 값(빠른 보기)

Sub Autofilter_Values_from_Whole_Worksheet()

Source_Worksheet = "Sheet1"
Destination_Worksheet = "Sheet2"

Dim Filtered_Columns() As Variant
Filtered_Columns = Array(1, 3)

Value_Column = 3
Value = "F"

Row_Count = 1
Column_Count = 1

For i = 1 To Worksheets(Source_Worksheet).UsedRange.Rows.Count
    If Worksheets(Source_Worksheet).UsedRange.Cells(i, Value_Column) <> Value Then
        For j = LBound(Filtered_Columns) To UBound(Filtered_Columns)
            Worksheets(Destination_Worksheet).Cells(Row_Count, Column_Count) = Worksheets(Source_Worksheet).UsedRange.Cells(i, Filtered_Columns(j))
            Column_Count = Column_Count + 1
        Next j
        Row_Count = Row_Count + 1
        Column_Count = 1
    End If
Next i

End Sub

Excel에서 VBA를 사용하여 특정 값과 같지 않은 값을 자동 필터링하는 방법

2 Excel에서 VBA를 사용하여 특정 값과 같지 않은 값을 자동 필터링하는 데 적합한 방법

더 이상 지체하지 않고 오늘 본론으로 가자. 먼저 전체 워크시트에서 값을 자동 필터링한 다음 워크시트의 특정 범위에서 값을 자동 필터링합니다.

1. 전체 워크시트의 특정 값과 같지 않은 값 자동 필터링

우선 Excel VBA를 사용하여 전체 워크시트의 특정 값과 같지 않은 값을 자동 필터링하는 방법을 배웁니다. .

여기에 Sheet1이라는 워크시트가 있습니다. 일부 학생의 이름이 포함된 , 표시 시험에서, 그리고 그들의 등급 . 데이터 세트는 A1 셀에서 바로 시작됩니다. .

Excel에서 VBA를 사용하여 특정 값과 같지 않은 값을 자동 필터링하는 방법

우리의 목표는 F 등급이 아닌 학생을 자동 필터링하는 것입니다. Sheet2라는 워크시트에서 .

⧪ 1단계:입력 삽입

먼저 코드에 입력을 삽입해야 합니다. 여기에는 소스 워크시트(Sheet1)의 이름이 포함됩니다. , 대상 워크시트(Sheet2) , 필터링될 열(1, 3) , 특정 값이 있는 열(3)특정 값(F) .

Source_Worksheet = "Sheet1"
Destination_Worksheet = "Sheet2"

Dim Filtered_Columns() As Variant
Filtered_Columns = Array(1, 3)

Value_Column = 3
Value = "F"

⧪ 2단계:For 루프로 값 자동 필터링

다음으로 for-loop를 반복하여 소스 워크시트의 값을 대상 워크시트로 자동 필터링합니다. .

Row_Count = 1
Column_Count = 1

For i = 1 To Worksheets(Source_Worksheet).UsedRange.Rows.Count
    If Worksheets(Source_Worksheet).UsedRange.Cells(i, Value_Column) <> Value Then
        For j = LBound(Filtered_Columns) To UBound(Filtered_Columns)
            Worksheets(Destination_Worksheet).Cells(Row_Count, Column_Count) = Worksheets(Source_Worksheet).UsedRange.Cells(i, Filtered_Columns(j))
            Column_Count = Column_Count + 1
        Next j
        Row_Count = Row_Count + 1
        Column_Count = 1
    End If
Next i

따라서 완전한 VBA 코드는 다음과 같습니다.

⧭ VBA 코드:

Sub Autofilter_Values_from_Whole_Worksheet()

Source_Worksheet = "Sheet1"
Destination_Worksheet = "Sheet2"

Dim Filtered_Columns() As Variant
Filtered_Columns = Array(1, 3)

Value_Column = 3
Value = "F"

Row_Count = 1
Column_Count = 1

For i = 1 To Worksheets(Source_Worksheet).UsedRange.Rows.Count
    If Worksheets(Source_Worksheet).UsedRange.Cells(i, Value_Column) <> Value Then
        For j = LBound(Filtered_Columns) To UBound(Filtered_Columns)
            Worksheets(Destination_Worksheet).Cells(Row_Count, Column_Count) = Worksheets(Source_Worksheet).UsedRange.Cells(i, Filtered_Columns(j))
            Column_Count = Column_Count + 1
        Next j
        Row_Count = Row_Count + 1
        Column_Count = 1
    End If
Next i

End Sub

<강한> Excel에서 VBA를 사용하여 특정 값과 같지 않은 값을 자동 필터링하는 방법

⧭ 출력:

필요에 따라 입력을 변경한 다음 코드를 실행합니다(먼저 Sheet2 또는 대상 워크시트로 사용할 수 있습니다. , 코드를 실행합니다. 그렇지 않으면 오류가 표시됩니다.).

데이터 세트의 특정 열(열 13 이 예에서) 특정 값(F)과 같지 않은 값만 포함하는 대상 워크시트로 자동 필터링됨 이 예에서는).

Excel에서 VBA를 사용하여 특정 값과 같지 않은 값을 자동 필터링하는 방법

자세히 알아보기: VBA에서 Excel의 동일한 필드에 대해 여러 기준으로 자동 필터링(4가지 방법)

2. Excel VBA를 사용하여 특정 셀 범위의 특정 값과 같지 않은 값 자동 필터링

Excel VBA의 전체 워크시트에서 특정 값과 같지 않은 값을 자동 필터링하는 방법을 배웠습니다. .

이제 특정 범위의 값을 자동 필터링하는 방법을 알아보겠습니다.

여기에 Sheet3이라는 워크시트가 있습니다. 일부 학생의 이름을 다시 포함합니다. , 표시 시험에서, 그리고 그들의 등급 . 하지만 이번에는 데이터 세트가 B3 셀에서 시작됩니다. 최대 셀 D15 .

Excel에서 VBA를 사용하여 특정 값과 같지 않은 값을 자동 필터링하는 방법

이번에는 F 등급이 아닌 학생을 자동 필터링하는 것이 목표입니다. 동일한 워크시트의 F3 셀 .

⧪ 1단계:입력 삽입

먼저 코드에 입력을 삽입해야 합니다. 이번에는 소스 워크시트(Sheet3)의 이름이 포함됩니다. , 대상 워크시트(Sheet3) , 대상 셀 (F3 ), 필터링될 열(1, 3) , 특정 값이 있는 열(3)특정 값(F) .

Source_Worksheet = "Sheet3"
Source_Range = "B3:D15"

Destination_Worksheet = "Sheet3"
Destination_Cell = "F3"

Dim Filtered_Columns() As Variant
Filtered_Columns = Array(1, 3)

Value_Column = 3
Value = "F"

⧪ 2단계:For 루프로 값 자동 필터링

다음으로 for-loop를 반복하여 값을 자동 필터링합니다. .

Row_Count = 1
Column_Count = 1

For i = 1 To Worksheets(Source_Worksheet).Range(Source_Range).Rows.Count
    If Worksheets(Source_Worksheet).Range(Source_Range).Cells(i, Value_Column) <> Value Then
        For j = LBound(Filtered_Columns) To UBound(Filtered_Columns)
            Worksheets(Destination_Worksheet).Range(Destination_Cell).Cells(Row_Count, Column_Count) = Worksheets(Source_Worksheet).Range(Source_Range).Cells(i, Filtered_Columns(j))
            Column_Count = Column_Count + 1
        Next j
        Row_Count = Row_Count + 1
        Column_Count = 1
    End If
Next i

따라서 완전한 VBA 코드는 다음과 같습니다.

⧭ VBA 코드:

Sub Autofilter_Values_from_Specific_Range()

Source_Worksheet = "Sheet3"
Source_Range = "B3:D15"

Destination_Worksheet = "Sheet3"
Destination_Cell = "F3"

Dim Filtered_Columns() As Variant
Filtered_Columns = Array(1, 3)

Value_Column = 3
Value = "F"

Row_Count = 1
Column_Count = 1

For i = 1 To Worksheets(Source_Worksheet).Range(Source_Range).Rows.Count
    If Worksheets(Source_Worksheet).Range(Source_Range).Cells(i, Value_Column) <> Value Then
        For j = LBound(Filtered_Columns) To UBound(Filtered_Columns)
            Worksheets(Destination_Worksheet).Range(Destination_Cell).Cells(Row_Count, Column_Count) = Worksheets(Source_Worksheet).Range(Source_Range).Cells(i, Filtered_Columns(j))
            Column_Count = Column_Count + 1
        Next j
        Row_Count = Row_Count + 1
        Column_Count = 1
    End If
Next i

End Sub

Excel에서 VBA를 사용하여 특정 값과 같지 않은 값을 자동 필터링하는 방법

⧭ 출력:

입력을 변경한 후 코드를 실행합니다(대상 워크시트를 만드는 것을 잊지 마세요. 다른 경우 먼저, 그렇지 않으면 오류가 발생합니다.).

데이터 세트의 특정 열(열 13 이 예에서는 대상 셀로 자동 필터링됨(F3 이 예에서는 특정 값(F)과 같지 않은 값만 포함하는 대상 워크시트의 이 예에서는).

Excel에서 VBA를 사용하여 특정 값과 같지 않은 값을 자동 필터링하는 방법

자세히 알아보기: [수정]:범위 클래스의 자동 필터 방법 실패(5개 솔루션)

기억해야 할 사항

값을 새 워크시트로 자동 필터링하는 코드를 실행하기 전에 해당 워크시트를 만듭니다. 그렇지 않으면 오류가 발생합니다.

또한 여기에서는 UsedRange를 사용했습니다. VBA 속성 전체 워크시트에서 값을 자동 필터링합니다. 클릭하시면 자세히 알 수 있습니다.

결론

따라서 다음은 VBA를 사용하여 특정 값과 같지 않은 값을 자동 필터링하는 방법입니다. 엑셀에서. 질문있으세요? 언제든지 문의해 주세요. ExcelDemy 사이트를 방문하는 것도 잊지 마세요. 더 많은 게시물과 업데이트를 확인하세요.

관련 기사

  • 자동 필터가 켜져 있는지 확인하는 Excel VBA(4가지 쉬운 방법)
  • VBA 자동 필터:작은 것부터 큰 것 순으로 정렬(3가지 방법)
  • Excel VBA로 보이는 행을 자동 필터링 및 복사하는 방법
  • Excel VBA:자동 필터가 있는 경우 제거(7가지 방법)