首页 > 解决方案 > 选定范围内的 VBA 验证

问题描述

我似乎无法让我的验证在下面的示例中正常工作。我想限制用户,以便他/她不能用单元格中已经存在的任何类型的数字或字母覆盖数字。(例如:如果单元格中有 9,并且他/她想要将其覆盖为8,不要让它,只需弹出错误消息并将其重置为原始值)。我在 vba 和 excel 的数据中尝试了几个限制 --> 验证选项并观看了许多视频,但我似乎无法弄清楚,认为这一定是一些我不知道的微不足道的命令。问题是,这些值会在范围内不断变化,所以我不能只选择其中有价值的单元格。

选择的范围是 B2:J10。

在此处输入图像描述

标签: excelvbavalidation

解决方案


受到 extensionhelp 问题的启发,我想出了一种方法来限制包含值的单元格。如果有人想知道,这里是代码:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Dim Rng
Dim MyCell

Set Rng = Range("B2:J10")
For Each MyCell In Rng
    If MyCell.Value = "" Then

    Else: ActiveSheet.Unprotect
        ActiveSheet.Protect Contents:=True
    End If
Next 
End Sub

推荐阅读