我尝试确保用户从下拉列表中选择列中的值。该列表位于不同的页面中。此外,如果用户使用" PASTE"覆盖下拉列表,那么我需要弹出一个消息框,警告他们大致相同。
如何使用VBA Macro
实现此目的最诚挚的问候,
gmainak
答案 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说的那样,
使用数据验证(在数据标签 - 允许 - 列表中找到)将列表锁定到您的选择,然后隐藏选项卡或锁定列表中的选项卡。
通过数据验证,您可以添加输入消息或错误提醒以通知用户。