Excel的数据验证功能允许将下拉列表嵌入到工作表中。您可以以多种方式填充该列表,但静态列表可能是最简单的。如果频繁更新列表,则该功能的列表是不够的。相反,利用Excel的table (.xlsx格式)对象。如果验证控件引用一个表,您可以更新列表(在工作表中),验证控件将自动更新!
简而言之,您将在工作表中输入列表项,并将列表转换为表。然后,您将为表分配一个已定义的(范围)名称。创建验证控件时,将引用定义的名称(引用表)。在本文中,我们将使用.xlsx表对象。您可以使用任何简单的列表或下载.xlsx演示文件。这种技术不容易转换成Excel以前的.xls格式。如果有足够的请求,我将在后续专栏中介绍Excel .xls格式。
首先,您需要一个列表——我们将使用图a中所示的列表。您将注意到列表是按字母顺序排列的。维护一个按字母顺序排列的列表会给这项技术增加一个新问题,但是我们稍后将讨论这个问题。现在,你只需要一个列表——无论是否按字母顺序排列。
图一个
下一步是将列表转换为表(Excel 2007、2010和2013):
得到的表有很多优点,也有一些缺点。通过阅读“使用Excel表对象的10个理由”,您可以了解更多关于表的信息。对于我们的目的,该特性消除了大量的工作,其固有的限制并不相关。
一旦表就位,就为它分配一个已定义的(范围)名称。Excel为表对象分配一个定义的名称(排序),但不能在数据验证控件中直接引用它。
虽然没有必要使用这种技术,但我建议为表对象指定有意义的名称,因为它们更容易使用。要命名新表,请单击表中的任何地方,然后单击上下文设计表。在属性组中,您将看到Excel的默认名称——Table1、Table2等等。单击该控件内部并输入一个新名称,如图B所示。
图B
现在,您已经准备好为表分配一个定义好的名称,如下所示:
图C
图D显示了工作表的两个定义名称——listofnative表和native表。这看起来有点多余,但这是必要的,因为您不能使用验证特性直接引用表(至少,我还没有找到方法)。
图D
现在可以添加验证控件了。这个功能有很多可以提供的,但是我们现在只关注最基本的:
若要更新验证控件中的列表,请向本机表添加(或删除)一个项。当您这样做时,Excel会自动更新验证控件,如图G所示。
图G
要更新表,将光标放在表的最后一个单元格中,然后按[Tab]。Excel将自动向表中添加新行。或者,您可以在表的任何地方插入新行——如果您要维护一个按字母顺序排列的列表,这是很有帮助的。如果希望自动执行字母排序,可以使用清单a中所示的宏。在向表底部添加新项之后,在使用验证下拉菜单之前执行宏。