Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Problema de desempenho na lista de pesquisa suspensa dinâmica no excel


Eu não sei sobre o desempenho, mas tente o seguinte. Seus dados devem estar na planilha "db", da linha 2 em diante. No lugar de um combobox, coloco um textbox (TextBox1 ) e uma lista (ListBox1 ) em um formulário de usuário.
Private Sub TextBox1_Change()
    Dim v As String
    Dim YourInput As String
    Dim iIdx As Long
    Dim CharNumber As Integer

    YourInput = TextBox1.Text

    Application.ScreenUpdating = False
    Application.Calculation = xlCalculationManual
    Application.EnableEvents = False

    ListBox1.Clear

    lLastRow = Worksheets("db").Cells(3, 1).End(xlDown).Row
    CharNumber = Len(YourInput)

    For iIdx = 2 To lLastRow
        v = Worksheets("db").Cells(iIdx, 1).Text
        If LCase(Left(v, CharNumber)) = LCase(YourInput) Then
            ListBox1.AddItem v
        End If
    Next

    Application.ScreenUpdating = True
    Application.Calculation = xlCalculationAutomatic
    Application.EnableEvents = True
End Sub

Private Sub ListBox1_Click()
    MsgBox ("Your selection: " & ListBox1.Text)
    'do your stuff
End Sub