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

VBA를 사용하여 Excel의 드롭다운 목록에서 값 선택(2가지 방법)

드롭다운 목록은 다양한 Excel 관련 작업을 수행하는 데 매우 유용한 기능입니다. VBA 구현 Excel에서 모든 작업을 실행하는 가장 효과적이고 빠르고 안전한 방법입니다. 이 기사에서는 드롭다운 목록에서 값을 선택하는 방법에 대한 2가지 효과적인 방법을 보여줍니다. VBA 매크로를 사용하여 Excel에서 .

통합 문서 다운로드

여기에서 무료 연습 Excel 워크북을 다운로드할 수 있습니다.

Excel의 일반 목록에서 드롭다운 목록 만들기

코딩 섹션으로 들어가기 전에 드롭다운 목록을 만드는 아주 간단한 방법을 알아보겠습니다. 일반 목록에서 엑셀에서. 나중에 우리가 만든 드롭다운 목록을 활용할 수 있도록 이 기사의 예입니다.

다음은 Excel 워크시트에 있는 일반 목록입니다. 반복적인 값이 있습니다. (예:애플 B7 셀B9 ) 목록에 있습니다.

VBA를 사용하여 Excel의 드롭다운 목록에서 값 선택(2가지 방법)

값으로 구성된 드롭다운 목록을 만드는 방법을 살펴보겠습니다. (예: 포도, 오렌지, 사과, 망고, 사과 ) 일반 목록에서 .

단계:

  • 처음에는 아무 셀이나 클릭 (셀 D4 이 경우) 드롭다운 목록을 저장할 위치
  • 그런 다음 데이터 탭을 클릭합니다. .
  • 그런 다음 데이터 유효성 검사 를 선택합니다. 데이터 도구에서 리본 그룹입니다.

VBA를 사용하여 Excel의 드롭다운 목록에서 값 선택(2가지 방법)

  • 데이터 검증 팝업 상자가 나타납니다. 거기에서
    • 목록 선택 허용  기준.
    • 소스 기준, 범위 드래그 (B5:B9 우리의 경우) 드롭다운 목록에 대한 값이 있습니다.

VBA를 사용하여 Excel의 드롭다운 목록에서 값 선택(2가지 방법)

  • 나중에 확인을 클릭합니다. .

다음 이미지를 보세요.

VBA를 사용하여 Excel의 드롭다운 목록에서 값 선택(2가지 방법)

셀 D4에서 , 생성된 드롭다운 목록이 있습니다. 을 보유합니다. (예: 포도, 오렌지, 사과, 망고, 사과 ) 검색된 일반 목록 (범위 B5:B9 ).

VBA를 사용하여 Excel의 드롭다운 목록에서 값을 선택하는 2가지 방법

이 섹션에서는 드롭다운 목록에서 반복 값과 비반복 값이 모두 있는 여러 값을 선택하는 방법을 배웁니다. VBA를 사용하여 Excel에서 .

1. VBA를 포함하여 Excel의 드롭다운 목록에서 여러 값 선택(반복적인 값 포함)

데이터 세트에 반복적인 값이 있습니다. 값이 2배인지 아닌지에 관계없이 드롭다운 목록에서 모든 값을 포착하도록 하려면 , 다음 단계를 따르세요.

단계:

  • 처음에 Alt + F11 키를 누릅니다. 키보드에서 또는 개발자 -> Visual Basic 탭으로 이동합니다. Visual Basic Editor 열기 .

VBA를 사용하여 Excel의 드롭다운 목록에서 값 선택(2가지 방법)

  • 다음으로 적절한 시트 이름을 마우스 오른쪽 버튼으로 클릭 코드 보기를 선택합니다. 표시되는 옵션 목록에서.

VBA를 사용하여 Excel의 드롭다운 목록에서 값 선택(2가지 방법)

  • 그런 다음 복사 다음 코드 및 붙여넣기 코드 창에 넣습니다.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim ValueA As String
Dim ValueB As String
On Error GoTo Exitsub
If Target.Address = "$D$4" Then
    If Target.SpecialCells(xlCellTypeAllValidation) Is Nothing Then
    GoTo Exitsub
    Else: If Target.Value = "" Then GoTo Exitsub Else
        Application.EnableEvents = False
        ValueB = Target.Value
        Application.Undo
        ValueA = Target.Value
        If ValueA = "" Then
            Target.Value = ValueB
        Else
            Target.Value = ValueA & ", " & ValueB
        End If
    End If
End If
Application.EnableEvents = True
Exitsub:
Application.EnableEvents = True
End Sub

VBA를 사용하여 Excel의 드롭다운 목록에서 값 선택(2가지 방법)

  • 달리지 마세요 이 코드, 저장 그것.
  • 이제 워크시트로 돌아가기 관심. 생성된 드롭다운 목록을 클릭하면 셀 D4 , 이제 드롭다운에서 여러 값을 선택할 수 있습니다. (다음 gif 참조).

VBA를 사용하여 Excel의 드롭다운 목록에서 값 선택(2가지 방법)

위의 gif에서 볼 수 있듯이 하나의 특정 값을 여러 번 선택할 수도 있습니다. 이 VBA 암호. 이 섹션에서 제공한 매크로 코드를 사용하면 드롭다운 목록에서 모든 유형의 값을 선택할 수 있습니다. .

VBA 코드 설명

Dim ValueA As String
Dim ValueB As String

변수 이름 정의.

On Error GoTo Exitsub

오류가 발생하면 Exitsub 라벨로 이동합니다. .

If Target.Address = "$D$4" Then
    If Target.SpecialCells(xlCellTypeAllValidation) Is Nothing Then
    GoTo Exitsub

대상을 D4 셀로 설정합니다. 여기에는 데이터 유효성 검사가 포함됩니다. 데이터 유효성 검사가 포함된 셀이 없으면 Exitsub 레이블로 이동합니다. .

Else: If Target.Value = "" Then GoTo Exitsub Else

대상으로 셀이 없으면 Exitsub 레이블로 이동합니다. . 그렇지 않으면 다음 행을 실행하십시오.

Application.EnableEvents = False

Worksheet_Change가 되도록 애플리케이션 이벤트 끄기 매크로가 실행되는 것을 방지할 수 있습니다. 그렇지 않으면 잠재적인 무한 루프가 발생할 수 있습니다.

ValueB = Target.Value

ValueB 정의 변경된 셀의 새로운 값이 됩니다.

Application.Undo

변경된 셀을 취소하려면.

ValueA = Target.Value

변경을 취소하여 이제 ValueA를 정의할 수 있습니다. 변경된 셀의 이전 값이 됩니다.

If ValueA = "" Then
 Target.Value = ValueB

이전 값이 비어 있으면 새 값을 대상으로 저장합니다.

Else
 Target.Value = ValueA & ", " & ValueB
  End If
 End If
End If

그렇지 않으면 이전 값과 새 값을 모두 쉼표(,)로 연결하여 대상 값으로 설정합니다. ). 모든 If 닫기 진술.

Application.EnableEvents = True
Exitsub:
Application.EnableEvents = True

응용 프로그램 이벤트를 다시 켜십시오.

자세히 알아보기: 여러 선택 항목이 있는 Excel에서 드롭다운 목록을 만드는 방법

유사한 수치:

  • Excel의 다른 시트에서 드롭다운 목록을 만드는 방법(2가지 방법)
  • Excel에서 검색 가능한 드롭다운 목록 만들기(2가지 방법)
  • Excel 드롭다운 목록이 작동하지 않음(8가지 문제 및 해결 방법)
  • 표에서 Excel 드롭다운 목록 만들기(예제 5개)
  • Excel의 자동 업데이트 드롭다운 목록(3가지 방법)

2. VBA 매크로를 적용하여 드롭다운 목록에서 여러 값 선택(반복적인 값 제외)

데이터 세트에 반복적인 값이 있습니다. 드롭다운 목록이 반복적인 값을 제외한 모든 값을 포착하도록 하려면 , 다음 단계를 따르세요.

단계:

  • 이전에 표시된 대로 Visual Basic Editor를 엽니다. 개발자  탭.
  • 그런 다음 코드 창으로 이동합니다. 코드 보기에서 오른쪽 클릭으로 표시되는 옵션 워크시트 관심.
  • 그런 다음 복사 다음 코드 및 붙여넣기 지정된 워크시트의 코드 창에 입력합니다.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim ValueA As String
Dim ValueB As String
Application.EnableEvents = True
On Error GoTo Exitsub
If Target.Address = "$D$4" Then
  If Target.SpecialCells(xlCellTypeAllValidation) Is Nothing Then
    GoTo Exitsub
  Else: If Target.Value = "" Then GoTo Exitsub Else
    Application.EnableEvents = False
    ValueB = Target.Value
    Application.Undo
    ValueA = Target.Value
      If ValueA = "" Then
        Target.Value = ValueB
      Else
        If InStr(1, ValueA, ValueB) = 0 Then
            Target.Value = ValueA & ", " & ValueB
      Else:
        Target.Value = ValueA
      End If
    End If
  End If
End If
Application.EnableEvents = True
Exitsub:
Application.EnableEvents = True
End Sub

VBA를 사용하여 Excel의 드롭다운 목록에서 값 선택(2가지 방법)

  • 달리지 마세요 이 코드, 저장 그것.
  • 이제 워크시트로 돌아가기 관심. 생성된 드롭다운 목록을 클릭하면 셀 D4 , 이제 드롭다운에서 여러 값을 선택할 수 있습니다. (다음 gif 참조).

VBA를 사용하여 Excel의 드롭다운 목록에서 값 선택(2가지 방법)

위 gif에서 알 수 있듯이 하나의 특정 값을 여러 번 선택할 수 없습니다. 이 VBA로 암호. 이 섹션에서 제공한 매크로 코드를 사용하면 드롭다운 목록에서 반복되는 값이 없는 값을 선택할 수 있습니다. .

VBA 코드 설명

Dim ValueA As String
Dim ValueB As String

변수 이름 정의.

Application.EnableEvents = True

응용 프로그램 이벤트를 다시 켜십시오.

On Error GoTo Exitsub

오류가 발생하면 Exitsub 라벨로 이동합니다. .

If Target.Address = "$D$4" Then
    If Target.SpecialCells(xlCellTypeAllValidation) Is Nothing Then
    GoTo Exitsub

대상을 D4 셀로 설정합니다. 여기에는 데이터 유효성 검사가 포함됩니다. 데이터 유효성 검사가 포함된 셀이 없으면 Exitsub 레이블로 이동합니다. .

Else: If Target.Value = "" Then GoTo Exitsub Else

대상으로 셀이 없으면 Exitsub 레이블로 이동합니다. . 그렇지 않으면 다음 행을 실행하십시오.

Application.EnableEvents = False

Worksheet_Change가 되도록 애플리케이션 이벤트 끄기 매크로는 잠재적인 무한 루프를 일으킬 수 있는 실행을 방지할 수 있습니다.

ValueB = Target.Value

ValueB 정의 변경된 셀의 새로운 값이 됩니다.

Application.Undo

변경된 셀을 취소하려면.

ValueA = Target.Value

변경을 취소하여 이제 ValueA를 정의할 수 있습니다. 변경된 셀의 이전 값이 됩니다.

If ValueA = "" Then
 Target.Value = ValueB

이전 값이 비어 있으면 새 값을 대상으로 저장합니다.

Else
 If InStr(1, ValueA, ValueB) = 0 Then
 Target.Value = ValueA & ", " & ValueB

InStr 기능 문자열에서 부분 문자열이 처음 나타나는 위치를 반환합니다. 출력이 0인 경우 그런 다음 이전 값과 새 값을 모두 쉼표(,)로 연결하여 대상 값으로 설정합니다. ).

Else: Target.Value = ValueA
    End If
   End If
  End If
 End If

그렇지 않으면 이전 값을 대상으로 설정하십시오. 모든 If 닫기 진술.

Application.EnableEvents = True
Exitsub:
Application.EnableEvents = True

응용 프로그램 이벤트를 다시 켜십시오.

자세히 알아보기: 선택 항목에 따른 Excel 드롭다운 목록

결론

결론적으로 이 문서에서는 드롭다운 목록에서 값을 선택하는 방법에 대한 2가지 효과적인 방법을 보여주었습니다. VBA 매크로를 사용하여 Excel에서 . 이 글이 당신에게 많은 도움이 되었기를 바랍니다. 주제와 관련하여 언제든지 질문하십시오.

관련 기사

  • Excel에서 수식을 기반으로 드롭다운 목록을 만드는 방법(4가지 방법)
  • Excel의 조건부 드롭다운 목록(생성, 정렬 및 사용)
  • IF 문을 사용하여 Excel에서 드롭다운 목록을 만드는 방법
  • Excel의 드롭다운 목록과 셀 값 연결(5가지 방법)
  • Excel에서 드롭다운 목록을 제거하는 방법