Skip to main content

如何在下拉列表中顯示第一個項目而不是空白?

Author: Xiaoyang Last Modified: 2025-08-06

Excel 工作表中的下拉列表是一項實用的功能,可簡化和標準化數據輸入——用戶只需從預定義的選項中選擇,而無需逐一手動輸入值。然而,有時候您可能會遇到這樣的情況:當您點擊下拉單元格時,初始選擇顯示為空白,而不是第一個實際的數據項目。如果源數據列表被編輯並且末尾留有空白行,或者末尾附近的項目被刪除,導致數據驗證包含列表頂部意外的空白位置,則經常會出現此問題。特別是對於冗長的列表,不斷地滾過空白條目回到第一個有效項目可能是低效且令人沮喪的。

a screenshot showing blank as the top items in drop-down list

解決這個問題不僅提高了用戶的便利性,還有助於防止意外選擇空白值,這可能會影響後續的數據處理或報告任務。在本文中,您將學習一些實用的方法,確保下拉列表中的第一個條目始終出現在頂部,消除這些不必要的空白。

使用數據驗證功能在下拉列表中顯示第一個項目而不是空白

使用 VBA 代碼自動在下拉列表中顯示第一個項目而不是空白

使用 Excel 表作為數據源


使用數據驗證功能在下拉列表中顯示第一個項目而不是空白

避免下拉列表頂部出現空白條目的一種有效方法是使用公式設置您的數據驗證,該公式動態確定正確的範圍。這種方法確保僅包含源列表中的填充單元格,而不考慮因刪除末尾數據而產生的任何空白行。這種解決方案特別適合經常修改源列表或希望進行簡單的基於公式的調整而不需要使用宏的用戶。

1. 選擇您希望創建下拉列表的單元格。然後,轉到 Excel 功能區並點擊 數據 > 數據驗證 > 數據驗證。數據驗證對話框將打開,如下所示:

a screenshot of inserting a Data Validation drop-down list

2. 在數據驗證對話框的設置標籤下,將允許設置為列表。在來源框中,輸入以下公式以動態引用僅包含實際數據的範圍:

=OFFSET(Sheet3!$A$1,0,0,COUNTA(Sheet3!$A:$A)-1,1)

注意:在此公式中,Sheet3 指的是包含源數據的工作表,而 A1 是列表的起始單元格。根據您的具體工作表佈局進行必要調整。使用 COUNTA 確保僅包含從 A1 開始的非空白單元格。如果您的源列表中包含故意的空白行(不僅僅是在末尾),此方法可能無法完全排除這些行,因此請保持源列表連續以獲得最佳結果。

a screenshot of configuring the data validation settings with formula

3. 點擊確定應用設置。現在,當您點擊配置的下拉列表單元格時,列表將顯示第一個實際數據項目在頂部。只要範圍涵蓋列 A 中的所有項目且主要數據塊內沒有空白單元格,即使源數據發生變化,此情況仍然成立。請參見下面的結果:

a screenshot displaying the final drop down list with the first item at the top of the list

提示:如果稍後需要擴展或縮小源列表,則無需更新數據驗證設置。只要範圍的開始處沒有空白單元格,公式將自動調整。但是要注意,如果列表中存在空白(不僅僅是在末尾),它將在計算計數中被跳過,但可能會在下拉列表中造成意外的間隙。

潛在問題:如果您的數據源可能包含故意的間隙,或者您有合併單元格或非連續數據,請考慮使用 Excel 表作為源範圍,或查看下面的 VBA 方法以實現更靈活的處理。


使用 VBA 代碼自動在下拉列表中顯示第一個項目而不是空白

在某些情況下,單獨調整數據驗證源是不夠的——例如,如果您的數據頻繁更改,或者由於源範圍中的其他結構原因可能會出現空白。通過簡單的 VBA 代碼,您可以確保每次激活具有數據驗證的單元格時,下拉列表都會自動選擇並顯示第一個可用項目。這也可以提高數據輸入速度,因為它減少了用戶點擊次數。

1. 插入下拉列表後,右鍵單擊包含下拉列表的工作表標籤,並從上下文菜單中選擇 查看代碼Microsoft Visual Basic for Applications 編輯器將出現。在窗口中,將以下代碼粘貼到相關的工作表模塊(不是標準模塊)中。此代碼將在背景運行,並在每次選擇驗證單元格時重置下拉列表:

VBA 代碼:自動在下拉列表中顯示第一個數據項目:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'Updateby Extendoffice 20160725
    Dim xFormula As String
    On Error GoTo Out:
    xFormula = Target.Cells(1).Validation.Formula1
    If Left(xFormula, 1) = "=" Then
        Target.Cells(1) = Range(Mid(xFormula, 1)).Cells(1).Value
    End If
Out:
End Sub

a screenshot showing how to use the VBA code

2. 粘貼代碼後,保存您的工作簿(最好保存為啟用宏的文件,文件擴展名為 .xlsm),然後關閉 VBA 編輯器窗口。現在,返回您的工作表並嘗試點擊任何具有下拉列表的單元格——當您激活該單元格時,下拉列表中的第一個條目將自動顯示。

提示與考慮:當您希望用戶獲得無縫體驗時,這種 VBA 方法是理想的,特別是對於動態或冗長的源列表,或可能包含不可避免的空白條目的列表。記住要啟用宏才能使其運行,並告知其他工作簿用戶,因為出於安全原因,某些環境限制宏的使用。

故障排除:如果代碼似乎不起作用,請仔細檢查是否已將其放置在 VBA 編輯器中正確的工作表代碼窗口中。同時確保下拉列表使用的是標準的數據驗證列表。

限制:VBA 解決方案只有在用戶選擇下拉單元格時才會觸發;如果單元格是通過其他方式填充的(例如公式結果或通過粘貼),則不會起作用。如果您從單元格中移除了下拉列表,或將單元格移至另一個沒有 VBA 代碼的工作表,則會失去自動選擇行為。


使用 Excel 表作為數據源

如果您的下拉源列表是動態的,並且您希望更好的可維護性,請考慮將源列表轉換為 Excel 表。表格會隨著數據的添加或刪除自動調整其大小,因此您的列表保持最新。但是,請注意,Excel 表不會自動排除空白單元格——表中的任何空白條目仍將出現在下拉列表中,除非您明確地將其過濾掉(例如,使用 Excel 365 和 Excel 2021 中可用的 FILTER 函數)。

1. 選擇您的源數據並按 Ctrl + T 將其轉換為表格。確保頂部沒有空白。使用表格設計標籤為表格分配一個有意義的名稱,例如 MyList

2. 設置數據驗證時,使用結構化引用指向表格列。在數據驗證的來源中,輸入:

=INDIRECT("MyList[Column1]")

Column1 替換為您的實際列名(列標題)。此方法動態包含表格列中所有填滿的項目,隨著您更新數據保持列表完整性。

這種方法特別適合源數據經常更新並且多個用戶需要高效管理驗證列表的環境。


最佳 Office 辦公效率工具

🤖 Kutools AI Aide:徹底革新數據分析,基於智能執行|生成程式碼|創建自訂公式|分析數據並生成圖表|調用 Kutools Functions
熱門功能查找、選取項目的背景色或標記重複值 | 刪除空行 | 合併列或單元格且不丟失資料 | 四捨五入...
高級 LOOKUP多條件查找|多值查找|多表查找|模糊查找...
高級下拉列表快速創建下拉列表 | 關聯下拉列表 | 多選下拉列表 ...
列管理器添加指定數量的列 | 移動列 | 切換隱藏列的可見狀態 | 區域與列比較 ...
精選功能網格聚焦 | 設計檢視 | 增強編輯欄 | 工作簿及工作表管理器 | 資源庫 (自動文本) | 日期提取器 | 合併資料 | 加密/解密儲存格 | 按清單發送電子郵件 | 超級篩選 | 特殊篩選(篩選粗體/傾斜/刪除線 ...)...
前15 大工具集12 款文本工具添加文本刪除特定字符,...)|50+ 種圖表 類型甘特圖,...)|40+ 實用 公式基於生日計算年齡,...)|19 款插入工具插入QR码按路徑插入圖片,...)|12 款轉換工具金額轉大寫匯率轉換,...)|7 款合併和分割工具高級合併行分割儲存格,...)| ...以及更多
使用 Kutools 支援你的語言——支援英語、西班牙語、德語、法語、中文及40 多種語言!

利用 Kutools for Excel 大幅提升你的 Excel 技能,感受前所未有的高效體驗。 Kutools for Excel 提供超過300 項高級功能,助你提升效率並保存時間。 點此查看你最需要的功能...


Office Tab 為 Office 帶來標籤式介面,讓你的工作更加輕鬆

  • 啟用 Word、Excel、PowerPoint 的標籤式編輯和閱讀功能
  • 在同一個視窗的標籤中打開和創建多個文件,而不是在新窗口中分開開啟。
  • 可提升你50% 的工作效率,每天為你大量減少滑鼠點擊次數!