0

我正在为我目前正在从事的项目寻求一些帮助。我正在创建一个演示工作表,其中显示了已达到各种状态的部件的数量。即,零件已逾期,零件需要合同,零件带有设计等。总的来说,我有8种不同的状态,单个零件可以根据某些标准处于。我已经创建了切换来指示特定部件所处的状态,并且我使用该切换在我的显示器中显示我的计数。

目前,我已将显示编​​码为根据下拉菜单进行切换,因此数据由我们的工作组更改。我想要做的是创建代码,单击后将查看单击的单元格中的计数,并显示在与之相关的特定部分下方。例如,如果第 1 组在单元格中的计数为 5,状态为“零件符合设计”,我希望将这 5 个特定零件和与它们相关的一些其他数据显示在我在此主显示下方创建的表格中。所有数据都存放在单独的数据表上,所以我只需要知道如何过滤,然后复制我想要的数据的特定部分并重新显示它。

我要在其中显示它的表称为“选择”,目前有 3 个 clomun、ID、Part 和 Bid#。我将从中提取数据的表位于名为 Data 的单独工作表上,最终将对用户隐藏。这里有人可以帮助我吗?

先感谢您。

4

1 回答 1

0

做到这一点的一种方法是将您的数据全部放在当前的电子表格中 - 并使用过滤来筛选出与您想要的条件相匹配的行。为此,向工作表添加一个隐藏列,并将其公式设置为:

=IF(PArea="- 所有区域路径 -",TRUE,IFERROR(IF(FIND(PArea,[@[Producing Area]])>0,TRUE,FALSE),FALSE))

您的选择器下拉列表应该是一个命名范围(此处为 PArea)。

然后,您可以添加一个运行以下代码的按钮 - 我将该按钮标记为“过滤器” - 以便用户知道选择过滤条件,然后单击过滤器。这将运行如下代码:

'Consumer Area
If Range("PArea") = "- ALL AREA PATHS -" Then
    ActiveSheet.ListObjects("Table_Dependenciesl").Range.AutoFilter Field:=22
Else
    ActiveSheet.ListObjects("Table_Dependenciesl").Range.AutoFilter Field:=22, _
        Criteria1:="TRUE"
End If

隐藏列中的单元格(值 = 匹配时为真,不匹配时为空白)和 VBA 代码的组合然后隐藏所有未将过滤器列设置为真的行。在该示例中,文本“-ALL AREA PATHS-”被添加到驱动下拉框@PArea 的下拉范围中-并且单元格公式中的逻辑知道如果选择了所有值,则该值应该为真-否则有以匹配特定的选定值。

autoFilter 命令采用一个或两个参数 - 字段 # 是列 #(从 @ 1 开始),可选条件会导致过滤器设置为我们公式的隐藏列显示“True”的任何位置。省略条件时,将撤消过滤器,并且该列不再有助于过滤的行。注意上面的续行字符 _ - 所以你不会把头发拉出来。

于 2013-02-05T18:47:03.773 回答