我希望你能指导我进行查询。
我正在对工作表仪表板中的多个项目执行搜索,其中的信息记录在位于工作表“原始数据”中的 Table1 中。我要求当通过选择单元格 C2 中的另一个可用类别执行新搜索时,在单元格范围 (C3:C5) 中,选项 --Choose description--、--Choose brand-- 和 --Choose size/model -- 分别出现。
此外,在单元格区域 (C7:C10) 中会出现选项 --Reselect criteria--。我已经在以下宏的帮助下实现了这一点。
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$C$2" Then
Range("C3") = "--Choose Description--"
Range("C4") = "--Choose Brand--"
Range("C5") = "--Choose Size/Model--"
End If
If Target.Address = "$C$5" Then
Range("C7") = "<Reselect criteria>"
Range("C8") = "<Reselect criteria>"
Range("C9") = "<Reselect criteria>"
Range("C10") = "<Reselect criteria>"
End If
End Sub
在单元格 C2 中设置值后,单元格 C3:C5 中的值将按顺序显示,对应于单元格 C2 中选择的搜索条件。
但是,我无法获得与在单元格 C2:C5 中输入的搜索条件对应的值记录在单元格 C7:C10 中,相反,我一直在获取值“--Reselect criteria--”,而没有能够修改它们。
我需要修改代码以允许我在单元格 C7:C10 中记录与单元格 C2:C5 中选择的搜索条件相对应的数据,从而返回单元格 D7:D10 中记录的搜索值。
我在工作表仪表板中输入的公式工作正常,但问题已在 VBE 代码中注册,因为它只允许我获得单元格 C3:C5 的结果,而对于单元格 C7:C10,它不允许我在单元格 C3:C5 中输入值后,执行任何计算。
我希望我知道如何传递我在搜索中需要的信息,非常感谢您的宝贵关注。
pdt:在链接附件中,您可以在其中找到包含图像中显示的数据的工作簿。
我对您的代码和公式做了一些快速更改。对于在您的工作簿上找到的公式,如 D7:D10
#NA
所示,它们的公式现在包含IFERROR
函数。例如,D7 的公式现在是:这些更改允许测试代码中的 D7:D7 是否为文本。如果它们是文本,则显示消息
<Reselect criteria>
。如果不是,请显示成本值。您的代码将如下所示。请注意,我
Application.EnableEvents
在测试 D7 之前禁用了它,然后在完成后重新启用它。这是我用来避免错误消息的快捷方式。您可以删除它们并添加更好的错误处理。您必须调整代码并针对您的真实数据对其进行改进。