我正在制作一个存档系统,允许用户按业务部门搜索机器,然后搜索确切的机器。每台机器都有自己的相关详细信息——所有这些都放入表格中。
表格如下所示:
|单位|机器|电脑|软件|
用户将使用下拉列表将单元和机器插入“查询表”内的单元格中,然后按按钮。我希望程序在“存档表”中查找机器,找到机器所在的行,然后将所有详细信息打印到“搜索栏”下的查询表中。
我还想尝试使用另一个按钮来清除查询——也就是说,它将清除包含所有研究信息的单元格。
我对Excel非常缺乏经验,我一直使用VBA来使所有这个程序工作。我确信这很简单,但我只需要一些关于从这里开始的指导。
故事是:
我所能解析的只是简单地将其从一张纸复制到另一张纸?但这完全取决于所选择的机器,而且有超过 100 台机器——我真的不想编写一个需要我为每台可能的机器执行条件语句的程序。
这是我的一个想法,但我不知道我是否走在正确的道路上。
Sub() Search Function
Dim querybox as Variant
querybox = Range("B2")
If querybox = machine1 Then
Sheets("ArchiveSheet").Cells("*stuck*").CopySheets("QuerySheet").Cells("A4:D4")
End Sub
我建议在您的情况下使用本机 Excel 功能而不是 VBA。
例如,对于第 1,2 条,您可以使用数据验证工具。您可以使用公式从列中提取唯一值。因此,您将有两个包含所有单元和机器的下拉菜单。您可以进一步使机器下拉列表依赖于“单位”下拉列表值。在这种情况下,您不需要使用按钮来寻址数据表。
第3-5条是多余的。
第 6 条:在下拉菜单下,您希望有一个包含所选数据的区域。在我看来,最好的选择是使用 Filter 函数和下拉列表中的参数。
第 7 条:您可以使用 Match 函数以及下拉列表中的参数来检测需要删除的行。使用VBA删除这一行。
此外,如果您修改业务逻辑,您可以使用本机 Excel 表单来实现您的目的。 我希望我给了你另一个想法。
顺便说一句,由于您不熟悉 Excel 和 VBA,请尝试使用 Python。你会更快地实现你的目标。