【发布时间】:2019-03-27 09:16:59
【问题描述】:
我有一个由日期归档数据透视切片器过滤的数据透视表。 在另一张纸上,我有一个来自单元格 A1:A12 的 12 个月日期范围示例。 我有循环通过切片器并尝试将切片器中的内容与范围相匹配的代码。理想情况下,我希望切片器只选择存在于 A1:A12 范围内的值。下面的代码运行,但在循环终止后选择了所有内容。
有什么想法吗?
Sub DateSelect()
Dim ws As Worksheet
Dim i As Integer, iLookupColumn As Integer
Dim sl As SlicerCache
Dim sDate As String
Set sl = ThisWorkbook.SlicerCaches("Slicer_Month_and_Year")
Set ws = ThisWorkbook.Sheets("Macro")
For i = 1 To sl.SlicerItems.Count
sDate = sl.SlicerItems(i).Name
If IsError(Application.Match(sDate, ws.Range(ws.Cells(1, 14), ws.Cells(13, 14)), 0)) Then
ThisWorkbook.SlicerCaches("Slicer_Month_and_Year").SlicerItems(i).Selected = False
Else
ThisWorkbook.SlicerCaches("Slicer_Month_and_Year").SlicerItems(i).Selected = True
End If
Next i
End Sub
【问题讨论】: