自动重置下拉列表以显示第一行(选项)

Automatically reset drop down list to display first line (option)

希望您能提供帮助。首先,请原谅我的理解不足,因为我不是程序员,对 VBA 没有真正的了解。我正在寻找的是一段代码,它将重置下拉列表以显示第一行(一段代码用于重置特定数据验证列表,或者一段代码对单个 [= 上的所有验证列表执行此操作) 17=]).为了提供上下文,我一直在修补 excel 各种函数和公式的技能提升。因此,我继续为一家咖啡店搭建了一个临时 order/cash 支付系统。我将所有数据和各自的范围放在一个 sheet 中,将实际的 UI 放在另一个中。在 UI sheet 中,我创建了一些验证列表,例如在咖啡类别下,我创建了一个包含“cappuccino、date mocha、latte etc”的下拉列表,并为糕点创建了一个包含蛋糕的列表,松饼等。我已经为其他各种类别做了类似的事情,我的想法是当我从列表中选择下订单时,vlookup 和 hlookup 开始为我提供短款、高款或大款的价格饮料,乘以单位数。所有这些我都自动内置到一个临时支付系统中,该系统包含“总应付金额、小费、付款、找零等”。在这一点上我陷入困境,我想要一个带有分配宏的按钮,一旦交易完成,它就会将所有列表清除回第一行。注意:我的第一行已经作为“Please select...”内置到列表中 列表反映“请 select...”,我所有的总数都是零。所以,我们的想法是重置订单列表,例如咖啡、松饼等,无论是矮的、高的还是大的,数量都回到显示第一行。你能帮忙吗? Ps:不确定这是否有帮助,但我的 sheet 和所有数据都被命名为 Store Data,而托管所有下拉列表的 UI sheet 被命名为 Store Compute。最后一件事,我所有的验证列表都没有命名。在此先感谢您,对于冗长的查询,我深表歉意。哦,最后一件事,如果代码可以简单地复制并粘贴到新的 VBA 模块中,将会有所帮助 ;-) 谢谢

这是一个示例,您可以根据自己的需要进行调整。

我在单元格 A1 中安装了一个 DV 下拉菜单,它引用了列 G:

中的列表

注意列表中的第一项是Please Select...(它可以在G列表中的任何位置)

我们在 A2A10 中有类似的下拉菜单。 (这些下拉列表也可以参考列 G 或任何其他列列表)

如果您使用多个列列表,请确保每个列表都包含 Please Select...

完成选择并处理数据后,运行 这个小宏:

Public Sub resetDVs()
    [A1:A10] = "Please Select..."
End Sub

它会将每个单元格恢复到所需的 "starting state",而无需单击每个单元格。

编辑#1:

要让代码从 G 列表中获取 "reset" 值而不是内部值,请使用:

Public Sub resetDVs()
    [A1:A10] = Range("G1").Value
End Sub