>  기사  >  주제  >  Excel에서 동적 퍼지 일치 드롭다운 메뉴를 만드는 방법을 단계별로 가르쳐주세요.

Excel에서 동적 퍼지 일치 드롭다운 메뉴를 만드는 방법을 단계별로 가르쳐주세요.

WBOY
WBOY앞으로
2022-04-24 12:08:275257검색

이 글은 excel에 대한 관련 지식을 제공하며, Excel에서 동적 퍼지 일치 드롭다운 메뉴를 만드는 방법에 대한 관련 문제를 주로 소개합니다. 모두에게 도움이 되기를 바랍니다.

Excel에서 동적 퍼지 일치 드롭다운 메뉴를 만드는 방법을 단계별로 가르쳐주세요.

관련 학습 권장 사항: excel 튜토리얼

함수를 사용하여 퍼지 매칭 드롭다운 메뉴를 만들 수 있다는 것을 알고 있지만 기능이 작고 스마트하며 데이터의 양이 약간 더 많고 효율성은 라인의 끝 부분에 있습니다. 우리 모두 알고 있듯이 Excel에서 복잡한 문제를 효율적으로 해결하려면 여전히 멍청하고 멍청한 VBA에 의존해야 합니다. 그래서 오늘은 VBA를 사용하여 더욱 유용한 동적 퍼지 매칭 드롭다운 메뉴를 만드는 방법을 알려드리겠습니다.

완성된 효과는 다음과 같습니다.

Excel에서 동적 퍼지 일치 드롭다운 메뉴를 만드는 방법을 단계별로 가르쳐주세요.

위 그림과 같이 A열의 셀을 클릭하면 엑셀이 자동으로 텍스트 입력 상자와 목록 상자가 나타납니다. 텍스트 상자에 데이터를 입력하면 목록 상자의 데이터가 동적으로 업데이트됩니다.

1 丨 제작 단계

대상 워크시트를 선택하고 [개발 도구] → [삽입] → [ActiveX 컨트롤]로 이동하여 텍스트 상자와 목록 상자를 삽입합니다. 컨트롤의 크기와 저장 위치는 임의적입니다. 어쨌든 코드는 나중에 자체적으로 조정됩니다.

Excel에서 동적 퍼지 일치 드롭다운 메뉴를 만드는 방법을 단계별로 가르쳐주세요.

VBA 코드 조정 방법을 모르는 경우 여기의 텍스트 상자 이름은 TextBox1이어야 하고 목록 상자 이름은 ListBox1이어야 합니다. 일반적으로 이 두 이름도 시스템 기본값.

Excel에서 동적 퍼지 일치 드롭다운 메뉴를 만드는 방법을 단계별로 가르쳐주세요.

대상 워크시트를 선택한 상태에서 단축키 를 눌러 VBE 편집기를 열고 다음 코드를 현재 워크시트의 코드 창에 붙여넣습니다.

코드 분석에 대한 설명 보기

'设置文本框和列表框的大小及位置
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim b As Boolean, arr
    If Target.Column <> 1 Or Target.Row < 2 Then b = True &#39;如果用户选择的单元格不是第1列或者属于第1行
    If Target.Columns.Count > 1 Or Target.Rows.Count > 1 Then b = True &#39;如果用户选择的单元格数量大于1
    If b Then
        ListBox1.Visible = False &#39;不可见
        TextBox1.Visible = False &#39;不可见
        Exit Sub &#39;退出程序
    End If
    With Worksheets("示例") &#39;下拉列表来源内容的所在工作表
        arr = .Range("d2:d" & .Cells(Rows.Count, "d").End(3).Row) &#39;数据源
    End With
    With TextBox1
        .Value = ""
        .Visible = True &#39;可见
        .Top = Target.Top &#39;文本框顶部位置
        .Left = Target.Left &#39;文本框左侧位置
        .Height = Target.Height &#39;文本框高度
        .Width = Target.Width &#39;文本框宽度
        .Activate &#39;激活文本框
    End With
    With ListBox1
        .Visible = True &#39;可
        .Top = Target.Offset(0, 1).Top
        .Left = Target.Offset(0, 1).Left
        .Height = Target.Height * 5
        .Width = Target.Width
        .List = arr &#39;写入数据源数据
    End With
End Sub
&#39;根据文本框的输入值动态匹配数据
Private Sub TextBox1_Change()
    Dim arr, brr, i&, k&
    With Worksheets("示例") &#39;下拉列表来源内容的所在工作表
        arr = .Range("d2:d" & .Cells(Rows.Count, "d").End(3).Row) &#39;数据源
    End With
    If TextBox1.Text = "" Then ListBox1.List = arr: Exit Sub
    ReDim brr(1 To UBound(arr))
    For i = 1 To UBound(arr)
        If InStr(1, arr(i, 1), TextBox1.Text, vbTextCompare) Then  &#39;忽略字母大小写
            k = k + 1
            brr(k) = arr(i, 1)
        End If
    Next
    ListBox1.List = brr &#39;写入匹配后的数据
End Sub
&#39;如果双击列表框的内容则写入活动单元格
Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
    ActiveCell = ListBox1.Text
    With ListBox1
        .Clear &#39;清空列表框
        .Visible = False
    End With
    With TextBox1
        .Value = ""
        .Visible = False
    End With
End Sub

마지막으로 VBE를 닫고 현재 통합 문서를 xlsm 파일로 저장합니다.
...

2 丨Others

VBA를 이해하지 못하는 경우 위 단계를 수행한 후 코드의 "example"을 드롭다운 목록 데이터 소스가 있는 워크시트의 이름으로 바꿔야 합니다. 찾아서 "d2:d" & Cells(Rows.Count, “d”) 부분을 실제 데이터 소스가 있는 열로 교체합니다.

With Worksheets("示例") &#39;下拉列表来源内容的所在工作表
arr = .Range("d2:d" & .Cells(Rows.Count, "d").End(3).Row) &#39;数据源
End With

관련 학습 권장 사항: excel 튜토리얼

위 내용은 Excel에서 동적 퍼지 일치 드롭다운 메뉴를 만드는 방법을 단계별로 가르쳐주세요.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 excelhome.net에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제