根据更改单元格值打印整行表格,然后在EXCEL中清除它?

问题描述 投票:0回答:1

我正在制作一个存档系统,允许用户按业务部门搜索机器,然后搜索确切的机器。每台机器都有自己的相关详细信息——所有这些都放入表格中。

表格如下所示:

|单位|机器|电脑|软件|

用户将使用下拉列表将单元和机器插入“查询表”内的单元格中,然后按按钮。我希望程序在“存档表”中查找机器,找到机器所在的行,然后将所有详细信息打印到“搜索栏”下的查询表中。

我还想尝试使用另一个按钮来清除查询——也就是说,它将清除包含所有研究信息的单元格。

我对Excel非常缺乏经验,我一直使用VBA来使所有这个程序工作。我确信这很简单,但我只需要一些关于从这里开始的指导。

故事是:

  1. 用户在查询表中输入单位值
  2. 用户输入机器值
  3. 用户按下按钮
  4. 程序转到 ArchiveSheet
  5. 程序在单元表中找到包含机器详细信息的行
  6. 将该行的信息传输到 QuerySheet 中“搜索栏”单元格下方的单元格
  7. 按下“清除”按钮后,清除与查询相关的所有信息。

我所能解析的只是简单地将其从一张纸复制到另一张纸?但这完全取决于所选择的机器,而且有超过 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 search
1个回答
1
投票

我建议在您的情况下使用本机 Excel 功能而不是 VBA。

例如,对于第 1,2 条,您可以使用数据验证工具。您可以使用公式从列中提取唯一值。因此,您将有两个包含所有单元和机器的下拉菜单。您可以进一步使机器下拉列表依赖于“单位”下拉列表值。在这种情况下,您不需要使用按钮来寻址数据表。

第3-5条是多余的。

第 6 条:在下拉菜单下,您希望有一个包含所选数据的区域。在我看来,最好的选择是使用 Filter 函数和下拉列表中的参数。

第 7 条:您可以使用 Match 函数以及下拉列表中的参数来检测需要删除的行。使用VBA删除这一行。

此外,如果您修改业务逻辑,您可以使用本机 Excel 表单来实现您的目的。 我希望我给了你另一个想法。

顺便说一句,由于您不熟悉 Excel 和 VBA,请尝试使用 Python。你会更快地实现你的目标。

© www.soinside.com 2019 - 2024. All rights reserved.