2017-08-02 99 views
0

我已經使用一個字符串列表填充了一個ComboBox,並且由於該列表相當長,我正在努力添加一個自動完成功能,比如ComboBox誰將在用戶輸入字符時顯示匹配的字符串。使用VBA在MS Word的ComboBox中添加自動完成功能

我想要的東西的想法可以在這裏找到Auto-Complete with only text and not numbers ComboBox Excel VBA但它使用VBA Excel來完成。

這裏是我到目前爲止

Private Sub ComboBox1_Click() 
    Dim i As Long 
    Static found As Boolean 

    If found Then 
     found = False 
     Exit Sub 
    End If 

    With FormDialog.ComboBox1 
     .DropDown 
     '.MatchEntry = fmMatchEntryFirstLetter 
     If .Text = "" Then Exit Sub 
     For i = 0 To .ListCount 
      If InStr(.List(i), .Text) > 0 Then 
       found = True 
       If found Then 
        ' the suggestion code will go here I think 
       End If 
       Exit For '<--| exit loop 
      End If 
     Next i 
    End With 
End Sub 

如果有人能幫助我,我將感謝的代碼。

+0

'MatchEntry = fmMatchEntryComplete'和你想用你的宏創建的動作有什麼區別? – Variatus

+0

'fmMatchEntryComplete'不會顯示匹配字符的下拉列表,而是直接按列表中的書寫順序選擇匹配的字符串。上面的代碼實際上做的是一樣的,這就是爲什麼我要求幫助。 – Stackgeek

+0

對不起。你回答我的問題嗎?如果你只想看看你輸入的內容,你應該設置'frmMatchEntryNone'。 – Variatus

回答

0

正在關注@jsotola評論,我在試用後發現,這裏提供的這種答案Auto-Complete with only text and not numbers ComboBox Excel VBA by @Ralph對回答我的問題很有用。您只需專注於txtSearchTerm_Change()方法並使其適應您的程序要求。

不要忘記Option Compare Text在開始時會忽略區分大小寫的搜索。

我希望它有幫助。