2017-10-29 47 views
0

我有一个受保护的工作簿,它具有使用数据验证手动创建的下拉列表。可添加新值的VBA下拉列表

我有一个隐藏的工作表,其中我已经为其中的值定义了名称,并使用=SheetName!A1:A6在实际工作表上创建了数据验证。

这足够我的需要。然而,新的请求引发了应该有能力增加用户新值的能力。

例如:假设我有一个下拉值为A,B和C.现在用户必须从三个中选择一个。但是,如果他想要D,E(一次性使用),他应该能够增加任何新的价值。不需要将这些值保留在下拉列表中供将来使用。

回答

0

而不是使用固定列表使用offset函数来创建一个动态的命名范围并将数据验证分配给指定的范围。这样,所有用户需要做的是在列表中添加其他项目,它得到数据验证下拉更新以及

Here是关于如何做一个链接,如果你不知道如何

0

听起来不像你需要将它们添加到你的验证,如果他们只是一次性使用。只要允许验证,以接受其他值:

的数据验证进入“出错警告”选项卡,请执行下列操作:

  1. 取消选中“显示出错警告......”
  2. 改变“风格“任何东西比其他的‘停止’(即‘警告’像下图)

enter image description here

0

你知道你的值存储到APPEA的隐藏的工作表在你的下拉菜单中?

  1. 插入第1行前的列,然后在A1的值(这应该是因为你刚刚插入空白)描述列表如ListValues

  2. 然后选择在列中的所有数据A(不包括空格),按Ctrl + T,勾选表示我的数据/表格有标题的框,单击确定。

  3. 您现在应该有一个1列Excel表格。如果单击表格,然后单击屏幕顶部的设计,则可以使用屏幕左上角的字段命名表格。

然后,您可以参考您的验证范围为(确保你还告诉VBA什么工作簿和工作表的表位于):

Range("TABLENAME[COLUMNHEADER]") 

你应该用你给的名称替换TABLENAME它在步骤3和COLUMNHEADER中以上面步骤2中给出的名称。

在表的最后一行下方输入新值将导致表自动扩展并包含新添加的值。要删除值,您需要删除整个表格,而不是删除该值。

希望有所帮助。