Note: The other languages of the website are Google-translated. Back to English
English English

在Excel下拉列表中鍵入時如何自動完成?

對於包含大量項目的數據驗證下拉列表,您需要在列表中上下滾動以找到您需要的項目或在列錶框中正確鍵入整個單詞。 輸入第一個字母或任何相關字符時,是否有任何方法可以製作自動完成的下拉列表? 這將幫助人們在單元格中帶有下拉列表的工作表中更有效地工作。 本教程提供了兩種方法來幫助您實現它。

使用VBA代碼輸入下拉列表時自動完成
使用驚人的工具在下拉列表中輸入時自動完成

下拉列表的更多教程...


使用VBA代碼輸入下拉列表時自動完成

請執行以下操作,以在單元格中鍵入相應字母后使下拉列表自動完成。

首先,您需要在工作表中插入一個組合框並更改其屬性。

1.打開包含要使其自動完成的下拉列表單元格的工作表。

2.在插入組合框之前,需要將“開發人員”選項卡添加到Excel功能區。 如果功能區上顯示“開發人員”標籤, 轉到步驟3。 否則,請執行以下操作:單擊 文件 > 選項 打開 選項 窗口。 在這個 Excel選項 窗口中,單擊 自定義功能區 在左窗格中,檢查 開發人員 框,然後單擊 OK 按鈕。 看截圖:

3。 點擊 開發人員 > 插入 > 組合框(ActiveX控件).

4.在當前工作表中繪製一個組合框。 右鍵單擊它,然後選擇 氟化鈉性能 從右鍵單擊菜單中。

5。 在裡面 氟化鈉性能 對話框中,請替換原始文本 (姓名) 場與 TempCombo。

6。 關閉 設計模式 通過點擊 開發人員 > 設計模式。

然後,應用下面的VBA代碼

7.右鍵單擊當前工作表選項卡,然後單擊 查看代碼 從上下文菜單中。 看截圖:

8.在開幕 Microsoft Visual Basic for Applications 窗口,請將以下VBA代碼複製並粘貼到工作表的“代碼”窗口中。

VBA代碼:在下拉列表中鍵入時自動完成

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'Update by Extendoffice: 2020/01/16
    Dim xCombox As OLEObject
    Dim xStr As String
    Dim xWs As Worksheet
    Dim xArr
    
    Set xWs = Application.ActiveSheet
    On Error Resume Next
    Set xCombox = xWs.OLEObjects("TempCombo")
    With xCombox
        .ListFillRange = ""
        .LinkedCell = ""
        .Visible = False
    End With
    If Target.Validation.Type = 3 Then
        Target.Validation.InCellDropdown = False
        Cancel = True
        xStr = Target.Validation.Formula1
        xStr = Right(xStr, Len(xStr) - 1)
        If xStr = "" Then Exit Sub
        With xCombox
            .Visible = True
            .Left = Target.Left
            .Top = Target.Top
            .Width = Target.Width + 5
            .Height = Target.Height + 5
            .ListFillRange = xStr
            If .ListFillRange = "" Then
                xArr = Split(xStr, ",")
                Me.TempCombo.List = xArr
            End If
            .LinkedCell = Target.Address
        End With
        xCombox.Activate
        Me.TempCombo.DropDown
    End If
End Sub
Private Sub TempCombo_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    Select Case KeyCode
        Case 9
            Application.ActiveCell.Offset(0, 1).Activate
        Case 13
            Application.ActiveCell.Offset(1, 0).Activate
    End Select
End Sub

9。 按 其他 + Q 同時關閉按鍵 Microsoft Visual Basic應用程序 窗口。

從現在開始,單擊下拉列表單元格時,下拉列表將自動提示。 您可以開始輸入字母,以使所選單元格中的相應項目自動完成。 看截圖:

備註: 此代碼不適用於合併的單元格。


使用驚人的工具在下拉列表中輸入時自動完成

由於 VBA 對於很多 Excel 用戶來說很難處理,這裡推薦 可搜索的下拉列表 的特點 Excel的Kutools 幫助您在鍵入第一個字符時輕鬆自動完成下拉列表。

備註:在應用該功能之前,請確保您已在工作表中創建了下拉列表。 在這種情況下,下拉列表放置在 D3:D9 中。

1。 點擊 庫工具 > 下拉列表 > 可搜索的下拉列表 > 設定.

2.在彈出 可搜索的下拉列表 對話框,需要進行如下設置。

2.1)在 適用於 部分,指定要應用可搜索下拉列表功能的範圍或工作表;
保養竅門: 選擇後 指定範圍 單選按鈕,您可以選擇 當前工作表, 當前工作簿 or 所有工作簿 根據您的需要從下拉列表中選擇。
2.2)在 選項 部分,選擇 只匹配單詞的開頭 選項還是 區分大小寫 選項或兩者兼而有之;
只匹配單詞的開頭:勾選此選項,只顯示以輸入字符開頭的項目,列錶框中會自動補全第一個匹配的項目。 取消選中此選項以顯示包含鍵入字符的項目。
區分大小寫:選中此選項以對鍵入的字符執行區分大小寫的匹配。
2.3)點擊 OK.

3. 設置完成後,您需要通過點擊啟用該功能 庫工具 > 下拉列表 > 可搜索的下拉列表 > 啟用可搜索下拉列表.

現在,當您單擊下拉列表單元格時,將顯示一個包含所有項目的列錶框。 您只需要在文本框中輸入一個字符即可顯示所有對應的項目,並使用 Up or 箭頭選擇您需要的項目或讓第一個匹配的項目自動填充列錶框,然後按 Enter 使用匹配項自動完成下拉列表單元格的鍵。 請參閱下面的演示。

單擊以了解有關此功能的更多信息。

  如果您想免費試用該工具(30天), 請點擊下載,然後按照上述步驟進行操作。


相關文章:

如何在Excel中使用多個複選框創建下拉列表?
許多Excel用戶傾向於創建帶有多個複選框的下拉列表,以便每次都從列表中選擇多個項目。 實際上,您無法使用數據驗證功能創建帶有多個複選框的列表。 在本教程中,我們將向您展示兩種在Excel中創建帶有多個複選框的下拉列表的方法。 本教程提供了解決問題的方法。

在Excel中從另一個工作簿創建下拉列表
在工作簿中的工作表之間創建數據驗證下拉列表非常容易。 但是,如果數據驗證所需的列表數據位於另一個工作簿中,您將怎麼辦? 在本教程中,您將詳細了解如何從Excel中的另一個工作簿創建拖放列表。

在Excel中創建可搜索的下拉列表
對於具有眾多價值的下拉列表,找到合適的價值並非易事。 以前,我們已經介紹了一種在下拉框中輸入第一個字母時自動完成下拉列表的方法。 除了自動完成功能之外,您還可以使下拉列表可搜索,以提高在下拉列表中查找適當值時的工作效率。 為了使下拉列表可搜索,請嘗試本教程中的方法。

在Excel下拉列表中選擇值時自動填充其他單元格
假設您已經根據單元格區域B8:B14中的值創建了一個下拉列表。 在下拉列表中選擇任何值時,都希望在選定單元格中自動填充單元格範圍C8:C14中的相應值。 為了解決該問題,本教程中的方法將對您有所幫助。

下拉列表的更多教程...


最佳辦公效率工具

Kutools for Excel解決了您的大多數問題,並使您的生產率提高了80%

  • 重用: 快速插入 複雜的公式,圖表 以及您以前使用過的任何東西; 加密單元 帶密碼 創建郵件列表 並發送電子郵件...
  • 超級公式欄 (輕鬆編輯多行文本和公式); 閱讀版式 (輕鬆讀取和編輯大量單元格); 粘貼到過濾範圍...
  • 合併單元格/行/列 不會丟失數據; 拆分單元格內容; 合併重複的行/列...防止細胞重複; 比較範圍...
  • 選擇重複或唯一 行; 選擇空白行 (所有單元格都是空的); 超級查找和模糊查找 在許多工作簿中; 隨機選擇...
  • 確切的副本 多個單元格,無需更改公式參考; 自動創建參考 到多張紙; 插入項目符號,複選框等...
  • 提取文字,添加文本,按位置刪除, 刪除空間; 創建和打印分頁小計; 在單元格內容和註釋之間轉換...
  • 超級濾鏡 (將過濾方案保存並應用於其他工作表); 高級排序 按月/週/日,頻率及更多; 特殊過濾器 用粗體,斜體...
  • 結合工作簿和工作表; 根據關鍵列合併表; 將數據分割成多個工作表; 批量轉換xls,xlsx和PDF...
  • 超過300種強大功能。 支持Office / Excel 2007-2019和365。支持所有語言。 在您的企業或組織中輕鬆部署。 完整功能30天免費試用。 60天退款保證。
kte選項卡201905

Office選項卡為Office帶來了選項卡式界面,使您的工作更加輕鬆

  • 在Word,Excel,PowerPoint中啟用選項卡式編輯和閱讀,發布者,Access,Visio和Project。
  • 在同一窗口的新選項卡中而不是在新窗口中打開並創建多個文檔。
  • 每天將您的工作效率提高50%,並減少數百次鼠標單擊!
officetab底部
按評論排序
留言 (325)
還沒有評分。 成為第一位評論!
網站主持人對此評論進行了最小化
我試過了,它現在在屬性中只工作了 2 天,它在輸入 TempCombo 時給我一個錯誤消息,它是一個模棱兩可的名稱。 請幫忙
網站主持人對此評論進行了最小化
很好的解決方案,謝謝!
網站主持人對此評論進行了最小化
您好... 添加此組合框後,我無法在工作表上複製和粘貼其他元素。 它允許我通過粘貼複製是灰色的。 另外,有沒有辦法讓組合框在合併的單元格中工作? 謝謝
網站主持人對此評論進行了最小化
與其他用戶相同的問題 - 添加此組合框後,我無法從一個單元格複製和粘貼到另一個單元格。 複製功能似乎有效,但粘貼、特殊粘貼和 CTRL+V 無效。 謝謝你。
網站主持人對此評論進行了最小化
嗨,托馬斯......你有沒有解決這個問題? 我還沒有找到一個。
網站主持人對此評論進行了最小化
沒有真正的答案——當我必須複製並過去時,我只是回到開發人員並取消選擇設計模式——完成後記得再次單擊設計模式; 否則,當您雙擊一個單元格時,您的組合框將無法正常工作。
網站主持人對此評論進行了最小化
我正在保護工作表,以便無法修改公式,並且當我保護工作表時,自動填充功能不再起作用。 您對此有解決方案嗎?
網站主持人對此評論進行了最小化
你找到解決方案了嗎?
網站主持人對此評論進行了最小化
如何鎖定單元格?
網站主持人對此評論進行了最小化
效果很好.. 謝謝.. 節省了我很多時間.. 一個維度。 使用此代碼,它在一列中運行良好。我們必須在 vba 代碼中進行哪些更改以確保此代碼在同一工作表中的其他列中也適用,但具有不同的數據驗證源
網站主持人對此評論進行了最小化
感謝您的大力幫助.. 我的很多時間將被節省下來。 此代碼僅適用於工作表中一列中的一個數據驗證。我們必須在代碼中進行哪些更改才能在具有單獨數據源的 2 個單獨列中使用 2 個數據驗證
網站主持人對此評論進行了最小化
用於下拉列表的數據集/命名範圍是否需要在同一張表上才能正常工作? 當我雙擊下拉菜單時,我正在激活組合框,但是當我開始輸入時什麼都沒有出現? 知道這裡可能出現什麼問題嗎? 我遵循了上述所有步驟。 非常感謝,賈里德
網站主持人對此評論進行了最小化
我能夠讓代碼工作,但我在保存文件時遇到問題,我收到不同的錯誤消息。 一旦我保存並重新打開自動完成功能就不起作用了。 我正在使用 Excel 2007。有人可以提供有關如何保存文件的幫助嗎? 互聯網上有很多幫助,但我不了解所有命令。 謝謝
網站主持人對此評論進行了最小化
沒有在哪裡說如何將元素添加到下拉框中。
網站主持人對此評論進行了最小化
喬納森,你知道怎麼做嗎?
網站主持人對此評論進行了最小化
起初我也對這個感到困惑。 我意識到這個代碼應該與工作表中的任何數據驗證單元格配對。 因此,首先設置數據驗證,包括它從哪裡提取信息,然後代碼將從數據驗證中提取列表信息,並將 ComboBox 疊加在具有數據驗證的單元格上。 我希望這有幫助。
網站主持人對此評論進行了最小化
感謝有用的解決方案:-)
網站主持人對此評論進行了最小化
我已經完成了自動完成下拉列表,但是,在下拉列表中鍵入文本後,我不知道如何顯示值。 例如,在我的 DATA BASE SHEET 中,第 1 列包含項目,第 2 列和第 3 列包含項目的成本。 通過在第 1 列的 MAIN SHEET 的下拉列表中鍵入項目,項目的成本將顯示在第 2 列和第 3 列中。是否可以做到? 請幫幫我
網站主持人對此評論進行了最小化
驗證的源列表範圍在哪裡?
網站主持人對此評論進行了最小化
不要忘記在 ComboBox 屬性“ListFillRange”中添加下拉項目範圍
網站主持人對此評論進行了最小化
對於使用 ='range' 的下拉菜單非常有效,但是一旦範圍是公式的結果,例如 =IF(A1>0,'range','alternative'),功能就會中斷。 能夠輸入未填充的 TempCombo
網站主持人對此評論進行了最小化
你好! 這很棒。 但是如何將我的下拉列錶鍊接到組合框??? 請幫忙。
網站主持人對此評論進行了最小化
您好,我對此有疑問,我在下拉菜單中看不到任何值。 誰能告訴我如何將我的數據范圍與下拉列表聯繫起來? 顯示建議。 如果你能把完整的電子表格寄給我,那將不勝感激。(我的電子郵件是 deshandsouza@gmail.com)
網站主持人對此評論進行了最小化
我得到了上述解決方案! 剛剛錯過了創建的數據驗證下拉列表。 它現在工作正常。
網站主持人對此評論進行了最小化
嗚呼! 在使用 VBA 代碼輸入下拉列表時遵循自動完成中的步驟,我已經得到了我想要發生的事情! 謝謝! 謝謝!
網站主持人對此評論進行了最小化
嗯......它適用於一個單元格但是當我試圖讓它適用於整個列時我不能:(我所擁有的是 Col A=Item name Col B= Date Created Col C=我想輸入類別但是有下拉列表可供選擇 我有 723 個“項目”所以 723 行我希望在我輸入值時出現下拉列表。有什麼建議嗎?提前謝謝你
網站主持人對此評論進行了最小化
但是,您如何從數據中創建下拉列表...
這裡還沒有評論
載入更多
留下你的意見
以訪客身份發帖
×
評價此帖子:
0   字符
推薦地點