我有一系列切片机控制着一些数据透视表,这些透视表又生成一些饼图。从所选的切片器项目中,我想自动过滤底层数据集,以总结用于生成馅饼的信息。到目前为止,我已设法生成以下代码,我承认我已经从另一篇文章中收集了这些代码: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
答案 0 :(得分:0)
您需要使用Operator
参数指定您提供的条件类型。改变你的行
ActiveSheet.Range("$A$1:$Z$50000").AutoFilter _
Field:=1, _
Criteria1:=sArr()
到
ActiveSheet.Range("$A$1:$Z$50000").AutoFilter _
Field:=1, _
Criteria1:=sArr(), _
Operator:=xlFilterValues