다중 종속 드롭다운을 만드는 것은 MS Excel에서 항상 어려운 일이었습니다. 두 드롭다운 목록 사이에 종속성 또는 관계가 있는 경우 이러한 종류의 드롭다운 목록이 필요합니다. 일반적으로 다양한 공식을 사용하여 생성합니다. 또는 Excel에서 적절한 옵션을 변경합니다. 그러나 Excel VBA 코드를 사용하여 여러 드롭다운 목록을 만드는 몇 가지 쉬운 방법이 있습니다. 이 기사에서는 Excel에서 VBA 코드를 사용하여 여러 드롭다운 목록을 만드는 다양한 방법을 보여줍니다.
자세히 알아보기: Excel에서 드롭다운 목록을 만드는 방법(독립 및 종속)
Excel의 종속 드롭다운 목록이란 무엇입니까?
메인 프로세스로 이동하기 전에 Excel에서 종속 드롭다운 목록이 무엇인지 알아보겠습니다. 둘 이상의 드롭다운 목록 간에 종속성이 있는 경우 Excel에서는 이를 종속 드롭다운 목록이라고 합니다. 아래 그림은 종속 드롭다운 목록에 대한 명확한 개념을 나타냅니다.
여기에서 볼 수 있듯이 두 개의 드롭다운 목록 범주 및 식품은 완전히 종속된 두 개의 드롭다운 목록입니다. 카테고리 선택에 따라 여기에서 음식 목록을 정의합니다. 따라서 여러 계단식 드롭다운 목록이 작동하는 방식입니다.
자세히 알아보기: Excel에서 동적 종속 드롭다운 목록을 만드는 방법
여러 종속 드롭다운 목록 Excel VBA를 만드는 3가지 방법
1. Excel VBA의 드롭다운 목록에서 여러 항목을 선택하는 방법
프로젝트 이름과 프로젝트 구성원이라는 두 개의 목록이 있다고 가정해 보겠습니다. 각 프로젝트에 대해 드롭다운 목록을 사용하여 한 명 또는 여러 명의 구성원을 할당합니다.
1단계: 개발자 로 이동 탭을 열고 Visual Basic을 엽니다. (단축키 Alt + F11 )
2단계: 해당 VBAProject 메뉴에서 해당 워크시트로 이동합니다.
3단계: 이제 VBA 콘솔에서 다음 코드를 작성하십시오.
코드:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Old_value As String
Dim New_value As String
Application.EnableEvents = True
On Error GoTo Exitsub
If Not Intersect(Target, Range("C4:C11")) Is Nothing Then
If Target.SpecialCells(xlCellTypeAllValidation) Is Nothing Then
GoTo Exitsub
Else: If Target.Value = "" Then GoTo Exitsub Else
Application.EnableEvents = False
New_value = Target.Value
Application.Undo
Old_value = Target.Value
If Old_value = "" Then
Target.Value = New_value
Else
If InStr(1, Old_value, New_value) = 0 Then
Target.Value = Old_value & ", " & New_value
Else:
Target.Value = Old_value
End If
End If
End If
End If
Application.EnableEvents = True
Exitsub:
Application.EnableEvents = True
End Sub
4단계: 이제 프로젝트 구성원 열에서 여러 이름을 선택하십시오.
5단계: 모든 셀은 드롭다운 목록에서 여러 항목을 선택할 수 있습니다.
자세히 알아보기: Excel의 드롭다운 목록에서 여러 항목을 선택하는 방법
2. Excel VBA에서 여러 종속 드롭다운 목록 만들기
야채, 과일 및 유제품과 같은 다양한 범주의 식품 데이터 세트가 있다고 가정해 보겠습니다. 이제 카테고리에 따라 식품 항목을 검색하려고 합니다. 범주를 과일로 선택하면 식품 열에서 사용 가능한 항목은 라즈베리, 살구, 복숭아, 망고여야 합니다. 따라서 식품 품목은 범주에 따라 제공되어야 합니다. 카테고리와 식품 사이에 종속성이 있습니다.
1단계: 방법 1(1단계)과 동일한 단계를 수행하여 VBA 콘솔을 엽니다. 및 2단계 ) 그런 다음 다음 코드를 작성하십시오.
코드:
야채 드롭다운 목록 만들기:
Sub Vegetable_List()
Range("C4:C6").Validation.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, _
Formula1:="=Vegetable_List"
End Sub
과일 드롭다운 목록 생성:
Sub Fruit_List()
Range("C4:C6").Validation.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, _
Formula1:="=Fruits_list"
End Sub
유제품 드롭다운 목록 생성:
Sub Dairy_List()
Range("C4:C6").Validation.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, _
Formula1:="=Dairy_Product_List"
End Sub
이 부분에서는 개별 식품 항목의 목록을 만들고 드롭다운 목록에 저장합니다. 이 목록은 C4:C6에서 사용할 수 있습니다. 범위.
2단계: 이제 range B4:B6에 대한 주요 기능을 작성해야 합니다.
코드:
Private Sub Worksheet_Change(ByVal Target As Range)
Range("B4:B6").Validation.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, _
Formula1:="Vegetable_List,Fruits_list,Dairy_Product_List"
If Range("B4:B6").Value = "Vegetable_List" Then
Call Vegetable_List
ElseIf Range("B4:B6").Value = "Fruits_list" Then
Call Fruit_List
ElseIf Range("B4:B6").Value = "Dairy_Product_List" Then
Call Dairy_List
Else
End If
코드 설명
- 여기서 B4:B6 카테고리에 대해 이름이 지정된 다른 목록을 만들고 있습니다. 범위, 식품 카테고리의 이름이 포함됩니다.
- 그런 다음 목록의 값을 확인하고 항목에 따라 분류합니다. 이 IF ELSE의 경우 문이 사용되었습니다.
- 일치하는 이름을 찾으면 CallBack 메서드를 사용하여 목록 생성 함수를 호출했습니다. 좋아요
If Range("B4:B6").Value ="Vegetable_List" Then
베지터블_목록에 전화 걸기
- 여기서 셀의 값이 Vegetable_List 와 일치하는 경우 텍스트를 입력한 다음 Vegetable_List 야채 목록을 만들고 표시하는 기능입니다.
따라서 전체 코드는 다음과 같습니다.
3단계: 이제 워크시트로 이동하여 드롭다운 목록에서 범주를 선택합니다.
4단계: 그러면 음식 열에서 관련 항목을 사용할 수 있습니다.
5단계: 최종 출력은 다음과 같습니다.
3. Excel VBA에서 여러 종속 드롭다운 목록 지우기
이전 섹션에서는 Excel에서 관련 일치 목록을 가져오는 방법만 보았습니다. 그러나 때때로 자동으로 제거되지 않는 일치하지 않는 선택이 있을 수 있습니다. 이러한 문제를 방지하기 위한 공식을 만들 수 있습니다.
또 다른 옵션은 매크로를 사용하여 첫 번째 드롭다운에서 선택한 후 종속 셀을 지우는 것입니다. 그러면 선택 항목이 일치하지 않는 것을 방지할 수 있습니다.
1단계: 방법 1(1단계)과 동일한 단계를 수행하여 VBA 콘솔을 엽니다. 및 2단계 ) 그런 다음 다음 코드를 작성하십시오.
코드:
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Column = 2 Then
If Target.Validation.Type = 3 Then
Application.EnableEvents = False
Target.Offset(0, 1).ClearContents
End If
End If
exitHandler:
Application.EnableEvents = True
Exit Sub
End Sub
2단계: 이제 음식 에서 항목을 선택하십시오. 열을 클릭하고 카테고리 에서 다른 카테고리를 선택하십시오. 그리고 무슨 일이 일어나는지 보세요
첫 번째
두 번째
최종 결과
자세히 알아보기: Excel에서 드롭다운 목록을 제거하는 방법
기억해야 할 사항
일반적인 오류 | 표시될 때 |
---|---|
목록을 삭제할 수 없습니다. | 데이터 유효성 검사에서 허용 이 목록과 같지 않고 소스가 올바르게 선택되지 않은 경우 드롭다운 목록을 삭제할 수 없거나 VBA 코드를 사용하여 목록을 삭제합니다. |
값 업데이트 문제 | 일반적으로 종속 드롭다운 목록에서 일치하지 않는 값이 있으면 자동으로 업데이트되지 않습니다. 수식 또는 VBA 코드(이 기사의 방법 3)를 사용하여 값을 자동으로 업데이트할 수 있습니다. |
결론
다음은 여러 종속 드롭다운 목록 Excel VBA를 만들거나 조작하는 몇 가지 방법입니다. 나는 각각의 예와 함께 모든 방법을 보여 주었지만 다른 많은 반복이 있을 수 있습니다. 또한 사용되는 기능의 기본 사항에 대해 논의했습니다. 이를 달성할 수 있는 다른 방법이 있다면 언제든지 공유해 주십시오.
추가 자료
- Excel의 여러 열에 드롭다운 목록을 만드는 방법(3가지 방법)
- 선택 항목에 따른 Excel 드롭다운 목록
- IF 문을 사용하여 Excel에서 드롭다운 목록을 만드는 방법
- Excel의 다른 시트에서 드롭다운 목록 만들기(2가지 방법)
- Excel에서 드롭다운 목록을 편집하는 방법(4가지 기본 접근 방식)
- Excel의 드롭다운 목록이 있는 VLOOKUP