如何避免在 Excel 中複製貼上時覆蓋含有下拉式清單的儲存格?
資料驗證下拉式清單是確保 Excel 特定儲存格僅接受指定類型資料的有效方法,有助於維持工作表資料的一致性與完整性。然而,常見的問題是:當您從其他儲存格複製內容並貼上至含有下拉式清單的儲存格時,資料驗證規則會被一併覆蓋,導致下拉式清單消失。這不僅可能造成驗證規則遺失,還可能破壞試算表的邏輯結構,尤其在使用者輸入必須嚴格限制為下拉選項的情境下,影響尤為嚴重。
為維護下拉式清單儲存格的完整性,您或許希望禁止使用者對其執行貼上操作,以確保這些關鍵欄位的資料始終符合預設的限制與選項。本教學將指導您如何運用 VBA 有效防止對含有下拉式清單的儲存格進行複製貼上,適用於表單、受控輸入範本,或任何對資料品質要求嚴格的工作表。
在 Excel 中防止複製貼上覆蓋含下拉式清單的儲存格
若要避免下拉式清單因貼上內容而遭到覆寫,您可透過 VBA 保護包含這些儲存格的工作表。請依下列步驟操作:
1. 開啟包含您要保護之下拉式清單的工作表。
2. 按下 Alt + F11,即可開啟 Visual Basic for Applications 視窗。
3. 在左側窗格中,按兩下您要套用保護的工作表(非「ThisWorkbook」),並將下列 VBA 程式碼貼到程式碼編輯器中:

VBA 程式碼:防止貼上覆蓋下拉式清單
Private Sub Worksheet_Change(ByVal Target As Range)
'Updated by Extendoffice
Dim xValue As String
Dim xCheck1 As String
Dim xCheck2 As String
Dim xRg As Range
Dim xArrCheck1() As String
Dim xArrCheck2() As String
Dim xArrValue()
Dim xCount, xJ As Integer
Dim xBol As Boolean
' If Target.Count > 1 Then
' Exit Sub
' End If
xCount = Target.Count
ReDim xArrCheck1(1 To xCount)
ReDim xArrCheck2(1 To xCount)
ReDim xArrValue(1 To xCount)
Application.EnableEvents = False
On Error Resume Next
xJ = 1
For Each xRg In Target
xArrValue(xJ) = xRg.Value
xArrCheck1(xJ) = xRg.Validation.InCellDropdown
xJ = xJ + 1
Next
Application.Undo
xJ = 1
For Each xRg In Target
xArrCheck2(xJ) = xRg.Validation.InCellDropdown
xJ = xJ + 1
Next
xBol = False
For xJ = 1 To xCount
If xArrCheck2(xJ) <> xArrCheck1(xJ) Then
xBol = True
Exit For
End If
Next
If xBol Then
MsgBox "The selected cells containg data validation drop-down lists, no pasting allowed."
Else
xJ = 1
For Each xRg In Target
xRg.Value = xArrValue(xJ)
xJ = xJ + 1
Next
End If
Application.EnableEvents = True
End Sub
4. 按下 Alt + Q,即可關閉 VBA 編輯器並返回 Excel。
5. 嘗試貼上至下拉式清單儲存格時,系統將顯示訊息阻止貼上動作,確保下拉式清單保持完整:

注意事項與限制:
此 VBA 程式碼僅適用於單一儲存格的貼上動作;若進行多儲存格貼上,可能無法防止資料驗證遺失,敬請使用者留意。
疑難排解提示:
- 請務必將程式碼置於正確的工作表模組中(而非一般模組)。
- 開啟檔案時啟用巨集。
- 貼上程式碼時,請仔細檢查是否出現複製或貼上的錯誤。
- 在將巨集套用至實際資料前,請先於範例檔案中進行測試。
替代解決方案:
輕鬆在 Excel 中建立含核取方塊的下拉列表:
給下拉列表增加複選框的 Kutools for Excel 功能,可協助您根據需求,在限定區域、當前工作表、當前工作簿或所有已開啟的活頁簿中,輕鬆建立含核取方塊的下拉列表!
立即下載 Kutools for Excel 完整功能 30 天免費試用版!
相關文章:
如何在 Excel 中建立含多個核取方塊的下拉式清單?
許多 Excel 使用者希望在下拉式清單中加入多個核取方塊,以便一次選取多個項目。事實上,單靠資料驗證功能無法實現此需求。本教學將為您示範兩種在 Excel 中建立含多個核取方塊之下拉式清單的實用方法,立即解決您的困擾!
在 Excel 中從其他活頁簿建立下拉式清單
在同一活頁簿的不同工作表之間建立資料驗證下拉式清單相當簡單;但若清單資料位於另一個活頁簿中,該如何處理?本教學將詳細說明如何在 Excel 中輕鬆從其他活頁簿建立下拉式清單,助您提升效率、靈活整合資料!
在 Excel 中建立可搜尋的下拉式清單
當下拉式清單包含大量選項時,要快速找到合適項目並不容易。先前我們曾介紹過一種方法:當您在下拉式方塊中輸入首字母時,系統會自動完成清單選項。除了自動完成功能外,您還可進一步為下拉式清單加入搜尋功能,大幅提升挑選適當值的效率!立即試用本教學中的方法,讓您的 Excel 操作更聰明、更流暢!
在 Excel 下拉式清單中選取值時,自動填入其他儲存格
假設您已根據儲存格範圍 B8:B14 建立下拉式清單。當您從該清單中選取任一項目時,希望對應的 C8:C14 儲存格內容能自動填入指定位置。本教學提供的方法將助您輕鬆實現此功能!
最佳 Office 生產力工具
| 🤖 | KUTOOLS AI 助手:基於以下內容徹底革新數據分析:智慧執行 | 產生程式碼| 建立自訂公式 | 分析資料並產生圖表| 呼叫增強函數…… |
| 熱門功能:尋找、醒目提示或標記重複值 | 刪除空白行 | 合併列或儲存格而不遺失資料 | 不使用公式的四捨五入…… | |
| 高級 LOOKUP:多重條件 VLookup | 多重數值 VLookup | 跨多個工作表 VLookup | 模糊查找…… | |
| 高級下拉列表:快速建立下拉式清單 | 相依式下拉式清單 | 多選下拉式清單…… | |
| 欄位管理員:新增指定數量的欄位|移動欄位|切換隱藏欄位的可見狀態|比較範圍與欄位…… | |
| 精選功能:網格聚焦 | 設計視圖 |增強編輯欄 | 工作簿與工作表管理員 | 資源庫(自動文字)| 日期提取 | 合併工作表 | 加密/解密儲存格 | 依清單傳送電子郵件 | 超級篩選 | 特殊篩選(篩選粗體儲存格/斜體/刪除線……) ...... | |
| 頂尖 15 工具組:12 文字工具(添加文本,刪除特定字符,……)| 50+ 圖表 類型(甘特圖,……)| 40+ 實用公式(基於生日計算年齡,……)| 19 插入工具(插入二維碼,從路徑插入圖片,……)| 12 轉換工具(金額轉大寫,匯率轉換,……)| 7 合併和拆分工具(高級合併行,分割儲存格,……)|……以及更多 |
運用 Kutools for Excel 強化您的 Excel 技能,體驗前所未有的高效能!Kutools for Excel 提供超過 300 項進階功能,大幅提升生產力並節省寶貴時間。立即點擊,取得您最需要的功能……
Office Tab 為 Office 帶來分頁式介面,讓您的工作更輕鬆自在!
- 在 Word、Excel、PowerPoint 中啟用分頁式編輯與閱讀功能,以及 Access、Visio 與 Project。
- 在同視窗的新分頁中開啟並建立多份文件,而非另開新視窗。
- 每天為您提升 50% 的工作效率,並省下數百次滑鼠點擊!
所有 Kutools 增益集,一個安裝程式
Kutools for Office 套件整合了 Excel、Word、Outlook 與 PowerPoint 的增益集,以及 Office Tab Pro,非常適合需要跨多個 Office 應用程式協作的團隊使用!
- 全能套件— 包含 Excel、Word、Outlook 與 PowerPoint 增益集,以及 Office Tab Pro
- 一個安裝程式,一個授權— 數分鐘內即可完成設定(支援 MSI)
- 協同運作更出色— 在多個 Office 應用程式間實現流暢的生產力體驗
- 30 天完整功能試用— 無需註冊,無需信用卡
- 超值之選— 比單獨購買各增益集更省費用