【问题标题】:Excel data validation by typing instead of selection通过键入而不是选择来验证 Excel 数据
【发布时间】:2020-04-29 11:29:29
【问题描述】:

我正在为我的 excel 文档中的自动完成列表而苦苦挣扎。 我试图使用 OzGrid 中的示例

https://www.ozgrid.com/Excel/autocomplete-validation.htm

但似乎这一步解释得不够好。

首先,我通过在这两张纸之间链接我的单元格来完成第一步。

[![在此处输入图片描述][1]][1]

根据 OzGrid 的建议,在“Frontsheet”和“Locality”中,列表范围从 C51 到 C67。

接下来的[Dynamic Ranges][2]步骤可能是指旧版本的Excel传统菜单,我们可以从栏中选择“工具”。现在在 Excel 2016 中,我相信它应该如下所示: 公式 - 名称管理器 - 新... 我们在其中放置我们的名称、范围和引用(范围)。我已经创建了 Myrange

[![在此处输入图片描述][3]][3]

最后,我输入公式(假设 C50 是我的下拉列表单元格):

=OFFSET(Frontsheet!$C$50,0,0,MATCH("*",Frontsheet!$C$51:$C$67,-1),1)

但除了#N/A,我什么也得不到

我不知道接下来会发生什么。

这次我不想使用 VBA,因为我想将这些列表分配给指定的单元格。我想通过键入而不是选择来搜索记录,因为我已经得到了很多。有可能吗?

这个问题与之前的问题有些重复,遗憾的是没有给我带来解决方案。

Excel 2010: how to use autocomplete in validation list

Excel data validation with suggestions/autocomplete

【问题讨论】:

  • " 最后,我把公式..."。请透露你把它放在哪里。我使用您的公式定义了一个命名范围。然后,我将命名范围指定为数据验证下拉列表的列表源。它工作得很好——假设这就是你的想法。您的问题引用过多,没有明确的目标。
  • 我将公式放在单元格 C68 中,您可能已经注意到了。如果您定义了命名范围并制作了下拉列表,那很好,尽管您可以在里面输入文本吗?或者只是从列表中选择?我需要实现的是下拉列表与输入一些字符串的可能性相结合,这有助于我填充一些最佳匹配记录。这就是为什么会出现这种情况的原因。

标签: excel list


【解决方案1】:

您的公式=OFFSET(Frontsheet!$C$50,0,0,MATCH("*",Frontsheet!$C$51:$C$67,-1),1) 在单元格中输入时不应返回除 #N/A 以外的任何内容,因为它定义了 Excel 无法在单个单元格中显示的范围。但是,您可以使用它来定义命名范围,然后使用该名称来定义数据验证列表。

如果查找范围内有数字,MATCH("*",Frontsheet!$C$51:$C$67,-1) 将无法可靠地工作。您可以将其替换为COUNTA(Frontsheet!$C$51:$C$67),它可以同样出色地处理数字或文本。不同之处在于 MATCH 将生成整个列表,包括中间的空白,而 COUNTA 将在底部截断列表,其行数与上方的空白一样多。无论哪种方式,通常都会避免验证列表源中出现空白。

如果您希望用户能够选择或输入,您必须在数据的Error Alert 选项卡上禁用输入无效数据后显示警报验证对话框,您可以在其中设置验证规则。

【讨论】:

  • 是的,它有效。但是,我仍然没有自动填充。如果我的凭据之一是 Abi Xxxx。当我开始输入“Abi”时,它只返回“Abi”,没有自动填充,如果有意义的话,我可以立即输入姓氏。
  • 检查文件>选项>高级>编辑选项>为所有单元格值启用自动完成。如果选中此选项,则只能通过将 Data Validation 下拉列表替换为 ComboBox 来实现任何进一步的改进。工作表 AutoComplete 与先前在同一列中输入的内容一起使用。 ComboBox 的 AutoComplete 与下拉列表中的内容一起使用。恐怕你可能想要后者。
  • 我已经开启了
  • 谢谢你的提示。我可能会再次参加宏:)
【解决方案2】:

OzGrid 解决方案写得不好且具有欺骗性。它只是利用AutoComplete for cell values。链接到另一个工作表并使用偏移量或创建命名引用并没有什么神奇之处。

您需要做的就是在列上方的列中添加您打算使用的值列表。避免在此“默认”值列表和您打算输入的值之间出现空行。

为单元格跳过行“中断”自动完成。

但可以通过添加相邻的连续“索引”列来解决。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-07
    相关资源
    最近更新 更多