带有选择事件的 Excel 自动完成组合框

带有选择事件的 Excel 自动完成组合框

我有一张杂货的 Excel 表。其中一列是名称,另一列是是否购买(复选框),还有一列是金额。

我希望在顶行有一个小部件,这样当我开始输入项目名称时,它会显示一个匹配项目的列表,我可以从中进行选择,或者如果我继续输入并且只有一个项目,它会完成其名称。当选择最后一个项目时,其他小部件会显示数量,我可以编辑它,单击“检查”将检查列表中的项目。

我知道这很具体,但我希望至少有人可以帮助我开始。

谢谢你,伊泰

答案1

对于匹配项列表,如果您希望它自动完成,则需要使用组合框+宏。

第一步是在您的工作表或其他工作表上创建一个杂货清单。此列表将用于填充“小部件”。您应该将此列表设为命名范围让您以后的生活更加轻松。

接下来是你的“小部件”。你没有指定你拥有哪个版本的 Excel,因此你需要了解如何添加 ActiveX 组合框到您的工作表。

完成后,您需要打开 Visual Basic 编辑器 - 按 Alt + F11 即可。

在左侧窗口中,你会看到VBAProject([您的工作簿名称])以及其下名为“Microsoft Excel 对象”的文件夹。

展开该文件夹,你会看到一个名为本工作簿双击它并在右侧窗口中输入以下代码:

Private Sub Workbook_Open()
    Sheets("Sheet1").ComboBox1.List = _
      Application.WorksheetFunction.Transpose(Range("A1:A56"))
End Sub

代替:

  • 组合框1使用您的组合框的实际名称(这是插入工作簿中的第一个组合框的默认名称)

  • 工作表1使用实际工作表的名称

  • 范围(“A1:A56”)以及您的杂货清单的所在位置。如果您在另一张工作表上有该列表,则可以说 Sheets("Sheet2").Range("A1:A56")。如果您已为该范围指定名称,例如“Groceries”,则可以将其替换为 Range("Groceries") (命名范围是全球性的)。

这样做的目的是告诉 Excel 在打开工作簿时用您告诉它的列表填充该组合框(您可以通过单击 VB 编辑器工具栏中的播放按钮来检查它是否有效)。您需要有选项启用宏

我相信这会让你现在很忙:)

答案2

我会在另一张表上创建您通常购买的物品清单,然后使用数据验证在物品列中放置一个包含所有物品的下拉列表。

相关内容