드롭다운 목록은 다양한 Excel 관련 작업을 수행하는 데 매우 유용한 기능입니다. VBA 구현 Excel에서 모든 작업을 실행하는 가장 효과적이고 빠르고 안전한 방법입니다. 이 기사에서는 드롭다운 목록에서 값을 선택하는 방법에 대한 2가지 효과적인 방법을 보여줍니다. VBA 매크로를 사용하여 Excel에서 .
통합 문서 다운로드
여기에서 무료 연습 Excel 워크북을 다운로드할 수 있습니다.
Excel의 일반 목록에서 드롭다운 목록 만들기
코딩 섹션으로 들어가기 전에 드롭다운 목록을 만드는 아주 간단한 방법을 알아보겠습니다. 일반 목록에서 엑셀에서. 나중에 우리가 만든 드롭다운 목록을 활용할 수 있도록 이 기사의 예입니다.
다음은 Excel 워크시트에 있는 일반 목록입니다. 반복적인 값이 있습니다. (예:애플 B7 셀 및 B9 ) 목록에 있습니다.
값으로 구성된 드롭다운 목록을 만드는 방법을 살펴보겠습니다. (예: 포도, 오렌지, 사과, 망고, 사과 ) 일반 목록에서 .
단계:
- 처음에는 아무 셀이나 클릭 (셀 D4 이 경우) 드롭다운 목록을 저장할 위치
- 그런 다음 데이터 탭을 클릭합니다. .
- 그런 다음 데이터 유효성 검사 를 선택합니다. 데이터 도구에서 리본 그룹입니다.
- 데이터 검증 팝업 상자가 나타납니다. 거기에서
- 목록 선택 허용 기준.
- 소스 기준, 범위 드래그 (B5:B9 우리의 경우) 드롭다운 목록에 대한 값이 있습니다.
- 나중에 확인을 클릭합니다. .
다음 이미지를 보세요.
셀 D4에서 , 생성된 드롭다운 목록이 있습니다. 값 을 보유합니다. (예: 포도, 오렌지, 사과, 망고, 사과 ) 검색된 일반 목록 (범위 B5:B9 ).
VBA를 사용하여 Excel의 드롭다운 목록에서 값을 선택하는 2가지 방법
이 섹션에서는 드롭다운 목록에서 반복 값과 비반복 값이 모두 있는 여러 값을 선택하는 방법을 배웁니다. VBA를 사용하여 Excel에서 .
1. VBA를 포함하여 Excel의 드롭다운 목록에서 여러 값 선택(반복적인 값 포함)
데이터 세트에 반복적인 값이 있습니다. 값이 2배인지 아닌지에 관계없이 드롭다운 목록에서 모든 값을 포착하도록 하려면 , 다음 단계를 따르세요.
단계:
- 처음에 Alt + F11 키를 누릅니다. 키보드에서 또는 개발자 -> Visual Basic 탭으로 이동합니다. Visual Basic Editor 열기 .
- 다음으로 적절한 시트 이름을 마우스 오른쪽 버튼으로 클릭 코드 보기를 선택합니다. 표시되는 옵션 목록에서.
- 그런 다음 복사 다음 코드 및 붙여넣기 코드 창에 넣습니다.
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
- 달리지 마세요 이 코드, 저장 그것.
- 이제 워크시트로 돌아가기 관심. 생성된 드롭다운 목록을 클릭하면 셀 D4 , 이제 드롭다운에서 여러 값을 선택할 수 있습니다. (다음 gif 참조).
위의 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
- 달리지 마세요 이 코드, 저장 그것.
- 이제 워크시트로 돌아가기 관심. 생성된 드롭다운 목록을 클릭하면 셀 D4 , 이제 드롭다운에서 여러 값을 선택할 수 있습니다. (다음 gif 참조).
위 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에서 드롭다운 목록을 제거하는 방법