强制用户从下拉列表中选择值

时间:2016-11-30 12:26:03

标签: vba excel-vba excel

我尝试确保用户从下拉列表中选择列中的值。该列表位于不同的页面中。此外,如果用户使用" PASTE"覆盖下拉列表,那么我需要弹出一个消息框,警告他们大致相同。

如何使用VBA Macro

实现此目的

最诚挚的问候,

gmainak

3 个答案:

答案 0 :(得分:1)

您需要先设置Validation。如果人们粘贴并因此超越您的安全措施,您需要求助于更多解决方案:
我创建了一个简单的函数,可以检查Target事件中Worksheet_Change范围内的每个单元格 免责声明: 请注意我们不是编码服务,如果您不理解这些条款我们不应该受到责备;在这种情况下,您需要阅读更多有关基础知识的内容。

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

答案 1 :(得分:0)

将此代码放在下拉列表工作表代码窗格中:

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

答案 2 :(得分:-2)

像Tjb1说的那样,

使用数据验证(在数据标签 - 允许 - 列表中找到)将列表锁定到您的选择,然后隐藏选项卡或锁定列表中的选项卡。

通过数据验证,您可以添加输入消息或错误提醒以通知用户。