excel 如果表格中的另一个单元格包含数据,则停止用户输入数据

6mzjoqzu  于 2023-01-06  发布在  其他
关注(0)|答案(1)|浏览(162)

我可能在这里的方式,但我已经开始对一些代码,它是不工作(它抛出一个错误)。
实际上,我有一个表(Table18),其中有一列用于组1,一列用于组2。在任何给定行上,如果组1(rng)中有数据,我不希望用户能够向组2(rng2)中输入数据,反之亦然。
它必须仅用于选定的行,无论可能有多少行。
任何帮助都将不胜感激。

Sub CheckGroupIsPopulated()
' Description

    Dim tbl As ListObject
    Dim rng As Range, rng2 As Range
    Set tbl = ActiveSheet.ListObjects("Table18")
    'Table name
    Set rng = tbl.ListColumns(2).DataBodyRange
    'It should check if there is a value in the adjacent cell here
    Set rng2 = tbl.ListColumns(3).DataBodyRange
    'The code should execute if a user selects a cell in this range

    If ActiveCell = rng2 Then
        If rng.Cells.Value <> "" Then
            MsgBox "Unable to enter data if text is containted in Defined Entry"
            ActiveCell.Offset(0, -2).Select
        Else
        End If
    Else
    End If

End Sub
kb5ga3dv

kb5ga3dv1#

您可以为此使用数据验证,而根本不使用VBA。
选择你想要有条件保护的列,进入数据--〉数据验证,然后从下拉菜单中选择“自定义”。
现在,您可以输入一个公式,以确定是否允许用户在受保护的单元格中输入数据。如果公式返回TRUE,则允许输入,否则将根据您在“数据验证”表单的“错误警报”选项卡中输入的内容显示警告或错误。
在下面的示例中,如果在第一列中输入了“Y”,则用户将无法在该行的其他列中输入任何内容,但您可以根据自己的喜好进行调整。

相关问题