1

我已经对此进行了搜索,并分别找到了与过滤器和动态范围相关的答案,但不知道如何将它们组合在一起。

我的excel表的结构是:

  • 资料

    • 日期ABC
    • 2012 年 2 月 2 日 a1 b1 c1
    • 2012 年 7 月 7 日 a2 b2 c2
  • 图表

    • 在此工作表上生成的图表

我正在使用一个命名的动态范围myDataRange,它只返回那些数据等于或大于特定参考日期的行:

  • =OFFSET(Data!$C$2,COUNTIF(Data!$B:$B,"<"&Graphs!$B$1&""),0,(COUNTA(Data!$C:$C)-1-COUNTIF(数据!$B:$B,"<"&图表!$B$1&"")),1)

在图表上,我在单元格 B1 中输入了日期,例如:05-05-2012

这将确保 myDataRange 仅返回第二行数据(日期为 07-07-2012)。为此,我绘制了 C 列。

问题:但现在我还需要根据 A 列过滤动态范围。因此,如果图表单元格 B1 中的参考日期是 05-05-2012 并且过滤器是 a2,则 myData 范围仅返回一行。但是如果过滤器是 05-05-2012 和 a1,那么它将返回 0 行。

有人可以帮忙吗 - 我可以修改动态范围本身还是必须以另一种方式实现?我试图修改动态范围参数,但我不断收到错误消息,因为它不返回任何值,然后 Excel 无法绘制它。提前致谢 :)

4

1 回答 1

2

我正在使用上面提到的范围,以及我在工作表上插入的组合框上的下面的代码。

这是代码:

子 DropDown2_Change()

Dim selectedVal As String

With ThisWorkbook.Sheets("Graphs02").Shapes("Drop Down 2").ControlFormat
selectedVal = .List(.Value)
End With

'MsgBox selectedVal

With ThisWorkbook.Sheets("Data")
.Select
.Range("A1:BY60000").Select

Selection.AutoFilter
Selection.AutoFilter Field:=4, Criteria1:=selectedVal

End With

ThisWorkbook.Sheets("Graphs02").Select

结束子

在此,我放入组合框(下拉 2)的工作表是工作表“graphs02”。工作表数据包含我的所有数据,这些数据根据组合框中选择的值进行过滤。

同样,我在 stackoverflow 的帮助下完成了大部分工作:)

于 2013-01-10T06:22:10.357 回答