簡體   English   中英

強制用戶從下拉列表中選擇值

[英]Enforce users to select value from drop-down list

我試圖確保用戶從下拉列表中選擇一列中的值。 該列表在另一個頁面中。 另外,如果用戶使用“ PASTE”覆蓋了下拉列表,那么我需要彈出一個消息框,警告他們大致相同。

如何使用VBA宏實現此目標

最好的祝福,

Gmainak

您首先需要設置Validation 如果有人粘貼並因此超過您的安全措施,則您需要通過以下解決方案采取更多措施:
我創建了一個簡單的函數,可以檢查Worksheet_Change事件中Target范圍內的每個單元格。
免責聲明: 請注意,我們不是編碼服務,如果您不理解這些條款,我們不應該承擔責任。 在這種情況下,您需要閱讀更多基礎知識。

Function isValid(rng As Range) As Boolean
'isValid = rng.Validation.Formula1
Dim str As String, formstr As String, rng2 As Range, rng3 As Range
str = rng.Validation.Formula1
'str = Replace(str, "INDIREKT", "INDIRECT") 'hungarian specific
Set rng2 = Evaluate(str)
For Each rng3 In rng2
    If rng3 = rng Then
        isValid = True
        Exit Function
    End If
Next rng3
End Function

將此代碼放在下拉工作表代碼窗格中:

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = $A$1 Then '<--| change $A$1 to actual address of your dropdown cell
        If Not Application.CutCopyMode = False Then
            MsgBox "Warning !!" & vbCrLf & vbCrLf & "You are NOT allowed to paste over the drop-down list"
            Application.CutCopyMode = False
        End If
    End If
End Sub

就像Tjb1所說的那樣,

使用數據驗證(在數據選項卡-允許-列表中找到)將列表鎖定為您的選擇,然后隱藏選項卡或將列表鎖定在其中。

通過數據驗證,您可以添加輸入消息或錯誤警報以通知用戶。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM