【发布时间】:2015-04-01 04:48:54
【问题描述】:
我有一系列切片器控制多个数据透视表,这些数据透视表又生成一些饼图。从选择的切片器项目中,我想自动过滤底层数据集以总结用于生成饼图的信息。到目前为止,我已经设法生成了以下代码,我承认我从这里的另一篇文章中收集到了这些代码:AutoFilter Criteria Using Array (Error) - Too Large String? 下面的代码将自动过滤数据集,但仅使用切片器中选择的最后一项而不是任何其他选择,即如果选择了切片器的所有项目,则自动过滤仅使用最后一项而不是整个系列进行过滤。看起来数组元素没有按预期工作。 任何帮助都将被感激地接受。 谢谢。
Sub FilterData()
Dim sArr() As String
Dim sCache As SlicerCache
Dim wb As Workbook
Set wb = ThisWorkbook
Set sCache = wb.SlicerCaches("Slicer_Unit")
For Each sItem In ActiveWorkbook.SlicerCaches(sCache.Name).SlicerItems
If sItem.Selected = True Then
ReDim Preserve sArr(0 To sCount)
sArr(sCount) = sItem.Name
sCount = sCount + 1
End If
Next sItem
Sheets("Sheet1").Activate
ActiveSheet.Range("$A$1:$Z$50000").AutoFilter Field:=1, Criteria1:=sArr()
ReDim sArr(0 To 0)
End Sub
【问题讨论】: