선택 항목에서 사용자 정의 목록을 생성하는 Excel VBA 매크로

선택 항목에서 사용자 정의 목록을 생성하는 Excel VBA 매크로

안녕하세요. Excel 사용자 정의 목록에 선택 항목을 추가하는 매크로를 만드는 데 도움을 줄 수 있는 사람이 있는지 궁금합니다. 일반적으로 이 작업을 수행하려면 한 열에서 일련의 행을 선택한 다음 파일, 옵션, 고급으로 이동하여 맨 아래로 스크롤하고 사용자 정의 목록 편집을 클릭합니다. 매크로 생성기를 켠 상태에서 이 작업을 수행하면 내가 선택한 특정 셀과 관련된 매우 간단한 스크립트만 얻을 수 있습니다. 사용자 정의 목록에 추가하기 위해 현재 선택한 항목을 사용하도록 코드를 조정하고 싶습니다. 그런 식으로 나는 항상 J4-J9 범위에 묶여 있지 않습니다. 아래는 제가 받은 코드입니다.

Sub Customlistadd()
'
' Customlistadd Macro
'
' Keyboard Shortcut: Ctrl+Shift+I
'
    Application.AddCustomList ListArray:=Range("J4:J8")
End Sub

j4:j8 대신 현재 선택 항목을 추가하는 것만큼 간단합니까? 그렇다면 정확히 어떻게 작성해야 합니까? 현재 섹션을 보유하려면 먼저 변수 유형을 선언해야 합니까? 내가 살펴본 거의 모든 예는 현재 선택 범위를 유지하기 위해 변수를 사용하는 경향이 있는 내가 하려는 작업의 라인을 따라 무언가를 시도하는 것 같습니다. 감사합니다.

답변1

현재 선택된 셀이 항상 포함되는 개체를 사용하도록 코드를 변경합니다 Selection(2개 이상 선택한 경우). 즉

Application.AddCustomList Selection

그리고 사용자 정의 목록에 숫자가 아닌 문자만 포함되어 있는지 확인하세요. 예를 들어 A,B,C,D,E,F,G,... 또는 A1,A2,A3,A4,A5,A6,...은 괜찮지만 1,2,3,4,5는 그렇지 않습니다. .

답변2

이 시도

Public Sub CreateCustomList()
  Dim v As Variant
  Dim rng As Excel.Range

  Set rng = ActiveSheet.Range("A1:A3")

  'Transpose from 2 dim array to 1 dim array
  v = Application.Transpose(Selection)

  'Add the custom list
  Application.AddCustomList v

End Sub

답변3

사용자 정의 목록을 추가하고 가져오고 삭제하여 시도해 보세요. 팁: 빈 셀은 셀 수 있는 순서로 처리됩니다. 빈 셀은 사용하지 마세요.

Sub CoustomList()

    Dim Arr() As Variant
    Dim N As Long    
    Application.AddCustomList ListArray:=Sheet1.Range("A2:A4")
    Arr = Sheet1.Range("A2:A4")
    N = Application.GetCustomListNum(Arr)
    Application.DeleteCustomList N

End Sub

관련 정보