다중 선택이 있는 드롭다운 목록

Excel 시트의 클래식 드롭다운 목록은 훌륭하지만 제시된 세트에서 하나의 옵션만 선택할 수 있습니다. 때로는 이것이 정확히 원하는 것이지만 사용자가 선택할 수 있어야 하는 상황이 있습니다. 일부 목록의 요소.

이러한 다중 선택 목록의 몇 가지 일반적인 구현을 살펴보겠습니다.

옵션 1. 수평

사용자가 드롭다운 목록에서 항목을 하나씩 선택하면 변경 중인 셀의 오른쪽에 나타나며 자동으로 가로로 나열됩니다.

이 예에서 C2:C5 셀의 드롭다운 목록은 표준 방식으로 생성됩니다.

  1. 셀 C2:C5 선택
  2. 탭 또는 메뉴 Data 팀을 선택 데이터 유효성 검사
  3. 열리는 창에서 옵션을 선택하십시오 명부 범위로 지정 출처 목록 A1:A8에 대한 소스 데이터가 있는 셀

그런 다음 모든 주요 작업, 즉 녹색 셀의 오른쪽에 선택한 값을 추가하는 매크로를 시트 모듈에 추가해야 합니다. 이렇게 하려면 드롭다운 목록이 있는 시트 탭을 마우스 오른쪽 버튼으로 클릭하고 명령을 선택합니다. 소스 코드. 열리는 Visual Basic 편집기 창에 다음 코드를 붙여넣습니다.

Private Sub Worksheet_Change(ByVal Target As Range) On Error Resume Next If Not Intersect(Target, Range("C2:C5")) Is Nothing and Target.Cells.Count = 1 then Application.EnableEvents = False If Len(Target.Offset (0, 1)) = 0 then Target.Offset(0, 1) = Target Else Target.End(xlToRight).Offset(0, 1) = Target End If Target.ClearContents Application.EnableEvents = True End If End Sub  

필요한 경우 이 코드의 두 번째 줄에 있는 드롭다운 목록 C2:C5의 민감한 범위를 자신의 것으로 바꿉니다.

옵션 2. 수직

이전 버전과 동일하지만 새로 선택한 값은 오른쪽에 추가되지 않고 하단에 추가됩니다.

동일한 방식으로 수행되지만 처리기 매크로 코드가 약간 변경됩니다.

Private Sub Worksheet_Change(ByVal Target As Range) On Error Resume Next If Not Intersect(Target, Range("C2:F2")) Is Nothing and Target.Cells.Count = 1 then Application.EnableEvents = False If Len(Target.Offset (1, 0)) = 0 then Target.Offset(1, 0) = Target Else Target.End(xlDown).Offset(1, 0) = Target End If Target.ClearContents Application.EnableEvents = True End If End Sub  

다시, 필요한 경우 이 코드의 두 번째 줄에서 C2:F2 드롭다운 목록의 민감한 범위를 자신의 것으로 바꿉니다.

옵션 3. 동일한 셀에 누적

이 옵션에서는 드롭다운 목록이 있는 동일한 셀에서 누적이 발생합니다. 선택한 요소는 지정된 문자(예: 쉼표)로 구분됩니다.

녹색 셀의 드롭다운 목록은 이전 방법에서와 같이 완전히 표준적인 방식으로 생성됩니다. 모든 작업은 다시 시트 모듈의 매크로에 의해 수행됩니다.

Private Sub Worksheet_Change(ByVal Target As Range) On Error Resume Next If Not Intersect(Target, Range("C2:C5")) Is Nothing And Target.Cells.Count = 1 Then Application.EnableEvents = False newVal = Target Application.Undo oldval = 대상 If Len(oldval) <> 0 And oldval <> newVal Then Target = 대상 & "," & newVal Else 대상 = newVal End If If Len(newVal) = 0 Then Target.ClearContents Application.EnableEvents = True End If 엔드 서브  

원하는 경우 코드의 9번째 줄에 있는 구분 기호(쉼표)를 고유한 문자(예: 공백 또는 세미콜론)로 바꿀 수 있습니다.

  • Excel 시트 셀에서 간단한 드롭다운 목록을 만드는 방법
  • 콘텐츠가 있는 드롭다운 목록
  • 누락된 옵션이 추가된 드롭다운 목록
  • 매크로란 무엇이며 사용 방법, Visual Basic에서 매크로 코드를 삽입할 위치

댓글을 남겨주세요.