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

如何防止在Excel中使用下拉列表複製和粘貼單元格?

對於具有數據驗證下拉列表的單元格,當從另一個單元格複製內容並將其粘貼到該單元格時,該下拉列表將消失並替換為新的粘貼內容。 在某些情況下,您想防止將其他內容複製和粘貼到帶有下拉列表的單元格上,您將如何處理? 在本文中,您將獲得處理此問題的VBA方法。

防止在Excel中使用下拉列表複製和粘貼單元格


防止在Excel中使用下拉列表複製和粘貼單元格

1.使用要防止複制和粘貼的下拉列表單元格打開工作表。

2。 按 其他 + F11 同時打開 Microsoft Visual Basic應用程序 窗口。

3。 在裡面 Microsoft Visual Basic應用程序 窗口,在左窗格中雙擊當前工作表名稱,然後將下面的VBA代碼複製並粘貼到代碼編輯器中。 看截圖:

VBA代碼:使用下拉列表防止在單元格上複製和粘貼

Private Sub Worksheet_Change(ByVal Target As Range)
'Updated by Extendoffice 20200903
    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。 按 其他 + Q 退出鍵 Microsoft Visual Basic應用程序 窗口。

5.當您將內容粘貼到帶下拉列表的單元格時,將彈出一個對話框,提醒您不允許粘貼。 看截圖:

備註:此VBA僅適用於單單元格粘貼。 如果您複製並粘貼到多個單元格中,它將無法正常工作。

使用Excel中的複選框輕鬆創建下拉列表:

帶有復選框的下拉列表 的效用 Excel的Kutools 可以幫助您根據需要在指定範圍,當前工作表,當前工作簿或所有打開的工作簿中輕鬆創建帶有復選框的下拉列表。
下載完整功能 30- 現在免費試用 Kutools for Excel!


相關文章:

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

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

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

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

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


最佳辦公效率工具

Kutools for Excel 解決了你的大部分問題,並將你的生產力提高了 80%

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

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

  • 在Word,Excel,PowerPoint中啟用選項卡式編輯和閱讀,發布者,Access,Visio和Project。
  • 在同一窗口的新選項卡中而不是在新窗口中打開並創建多個文檔。
  • 將您的工作效率提高 50%,每天為您減少數百次鼠標點擊!
officetab底部
按評論排序
留言 (12)
還沒有評分。 成為第一位評論!
網站主持人對此評論進行了最小化
這可行,但是當我粘貼值時,這允許不在下拉列表中的數據。 限制不在列表中的任何值的任何方式。
網站主持人對此評論進行了最小化
嗨Dilip,你能解決這個問題嗎,我也有類似的問題。 我必須允許複製,僅粘貼數據驗證單元格中的下拉值,其他我必須限制。 你能分享你的解決方案。 謝謝饒
網站主持人對此評論進行了最小化
嗨,當我運行這個宏時,我得到了這個調試錯誤“Application.Undo”。 請盡快解決這個問題
網站主持人對此評論進行了最小化
嗨,上面提到的 vba 代碼沒有運行。請解決。
網站主持人對此評論進行了最小化
Private Sub Worksheet_Change(ByVal Target As Range) Dim xValue As String Dim xCheck1 As String Dim xCheck2 As String If Target.Count > 1 Then Exit Sub End If Application.EnableEvents = False xValue = Target.Value On Error Resume Next xCheck1 = Target。 Validation.InCellDropdown On Error GoTo 0 Application.Undo On Error Resume Next xCheck2 = Target.Validation.InCellDropdown On Error GoTo 0 If xCheck1 = xCheck2 Then Target = xValue Else MsgBox "不允許粘貼!" End If Application.EnableEvents = True End Sub 當從不同的工作簿或工作表複製時,此宏不起作用,那麼請告訴我如何避免這些事情
網站主持人對此評論進行了最小化
非常感謝你 !! 對我來說很好用!!! 複製到單個單元格受到限制。 但如果我複制一個單元格列表並粘貼..,則接受粘貼。 讓我看看我能不能把它調好..無論如何謝謝
網站主持人對此評論進行了最小化
Jepson,您是否設法解決了複製和粘貼到多個單元格的問題? 提前致謝!
網站主持人對此評論進行了最小化
嗨Dilip,你能解決使用粘貼值允許數據的問題嗎..我也面臨同樣的問題..請幫我解決這個問題
網站主持人對此評論進行了最小化
嗨 Dilip,您能否解決使用粘貼值允許數據的問題
網站主持人對此評論進行了最小化
您是否設法解決了複製和粘貼到多個單元格的問題? 提前致謝!
網站主持人對此評論進行了最小化
不,我沒有弄清楚。 一段時間後我沒有嘗試解決。
網站主持人對此評論進行了最小化
我可以工作,但是在您輸入代碼後您無法撤消任何操作。 不允許後退一步。
這裡還沒有評論
留下你的意見
以訪客身份發帖
×
評價此帖子:
0   字符
推薦地點

關注我們

版權所有©2009 - 萬維網。extendoffice.com。 | 版權所有。 供電 ExtendOffice。 |
Microsoft和Office徽標是Microsoft Corporation在美國和/或其他國家的商標或註冊商標。
受Sectigo SSL保護