拒绝进入取决于价值

Mun*_*ain 4 excel vba

我想问一下,如果在这个 Range("D2:D500") 中输入了“拒绝”这个词,那么它所在行之后的值不能只在 E 列中输入。

只要“拒绝”字词进入 D 列,那么只有在 E 列的单元格下方无权输入任何值,否则用户只能在 A、B、C 和 D 列输入值。如果用户在 E 列中输入值,则显示消息“您不允许”并清除该单元格的内容。

对于同一行,我使用的以下代码如下:

' 列 D 的此代码用于清除同一行中的数据

If rngTarg Is Nothing Then GoTo ExitHandler
For Each rngToChk In rngTarg
    Select Case rngToChk.Value
    Case "Denied"
        rngToChk.Offset(0, -1).ClearContents
        rngToChk.Offset(0, -2).ClearContents
        rngToChk.Offset(0, 1).ClearContents
        rngToChk.Offset(0, 2).ClearContents
    End Select
Next rngToChk


' this code for Column E which will help to user that it won’t have access to enter data in the same row

For Each cell In rngTarg
    If cell.Offset(0, -1) = "Denied" Then
    cell.Select
    MsgBox Excel.Application.UserName & ", As you enter <" & cell.Offset(0, -1) & "> in Column D" _
        & vbNewLine & "That is why you cannot enter Value.", vbokOnly + vbInformation, "Information"

        cell.ClearContents
        cell.Offset(1, 0).Select
        GoTo ExitHandler
    End If
Next cell
Run Code Online (Sandbox Code Playgroud)

我希望它有助于理解我的查询。

感谢和问候

穆尼布

在此处输入图片说明

Sid*_*out 5

无需使用 VBA。您可以使用Data Validation

  1. 选择范围E2:E LastCell。在 Excel 2007+ 中,它是E2:E1048576. 对于旧版本,它是E2:E65536. 只需选择单元格E2并按Shift+ End+Down Arrow

  2. 单击Data选项卡,然后单击Data Validation

  3. 选择Custom和在Formula类型=COUNTIF($D$1:$D1,"Denied")=0如下图

    在此处输入图片说明 在此处输入图片说明

  4. 点击Ok我们就完成了

在行动

在此处输入图片说明