如何根据具有列表条件的特定条件允许自定义输入单元格?

如何根据具有列表条件的特定条件允许自定义输入单元格?

我有一个应用了列表验证的单元格。用户可以选择选项 1、选项 2、选项 3、其他。

环境

这是设置

我想要的是,如果选择了“其他”,则允许用户输入海关信息。否则,如果单元格为空或选项为 1、2、3,则不允许用户自由输入文本。

在设置的时候,我没有勾选“输入无效数据后显示错误提示”,但是这样可以让用户随时自由输入文本。

如果我选择“输入无效数据后显示错误警告”,用户将无法自由输入文本。他们只能选择给定的选项,即选项 1、2、3 和其他。

谢谢任何建议和帮助。

答案1

根据我对您问题的理解。我建议采用一种尝试性的 VBA 解决方案。代码是在 Excel 2013 中创建的。应该也可以在 Excel 2016 中使用。请尝试一下,如果对您有用,请恢复。

在此示例中,使用单元格 D3。首先在单元格 D3 中手动创建验证,选项具体为选项 1、选项 2、选项 3 和其他。

现在按ALT+访问 VBA 编辑器F11。VBA 代码编辑器窗口将打开。例如,如果这是您想要的工作表,请双击 Excel Object Sheet1,然后在右侧代码窗口中从第一个下拉列表中选择 Worksheet,然后从下一个下拉列表中选择 Change event。

将以下 VBA 代码放入其中。在Private Sub Worksheet_Change(ByVal Target As Range)和之间End Sub

If Target.Address = "$D$3" Then
    If Target.Value = "Others" Then
        With Target.Validation
        .Delete
        .Add Type:=xlValidateInputOnly, AlertStyle:=xlValidAlertStop, Operator _
        :=xlBetween
        .IgnoreBlank = False
        .InCellDropdown = True
        .InputTitle = ""
        .ErrorTitle = ""
        .InputMessage = ""
        .ErrorMessage = ""
        .ShowInput = True
        .ShowError = True
    End With
    End
    End If
End If

If Target.Address = "$D$3" Then
  With Target.Validation
        .Delete
        .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
        xlBetween, Formula1:="Option 1,Option 2,Option 3,Others"
        .IgnoreBlank = False
        .InCellDropdown = True
        .InputTitle = ""
        .ErrorTitle = ""
        .InputMessage = ""
        .ErrorMessage = ""
        .ShowInput = True
        .ShowError = True
  End With
End If

将文件保存为 .xlsm 并测试验证现在在单元格 D3 中的工作方式。

在此处输入图片描述

答案2

在分析了你的查询后,我得出结论,你需要条件数据验证。为此您需要遵循几个步骤。

步骤1:选择要放置选项的单元格,然后选择数据验证命令然后设置,列表并在源文本框中写入关键词. 就像您已经列出的一样。

第2步:你需要创建命名数据区域为了关键词像选项 1 和其他选项。记住对于“其他”,保留数据范围为空白但其他的必须填充数据。

步骤3:根据以下条件选择要验证输入的单元格关键词, 从...开始数据验证命令然后设置下一个设置列表选项,最后写入以下公式。

=IF(A2="选项1",OptionOne,IF(A2="选项2",OptionTwo,If(A2="选项3",OptionThree,其他)))

注意:请注意,选项 1、选项 2 和选项 3 是我给关键词。OptionOne、OptionTwo 和 OptionThree 是命名数据范围

我建议你保留数据范围 其他空白因为这些空白单元格允许您写入自由数据。

希望这对你有帮助。请记住,我是在我测试过之后才发布此解决方案的。

相关内容