首页 > 解决方案 > 如何通过切片器选择数组索引

问题描述

我有另一个带有数据透视表和切片器的工作簿,它按年/月(202101 - 2021 年 1 月/ 202102 - 2 月等)对项目进行排序,我有今年/月的特定范围,就像这样。

202101 = Range (A4)
202102 = Range (B4)
202103 = Range (C4)

GetSlicerItems 函数将这个值“202102”/“202103”/“202104”作为字符串返回给我。我想根据该返回,为每个安装选择相应的范围

我试过这个,但没有运气。

Dim szslicer As String
szslicer = "Slicer_Name"

Dim temprange As Range

szMounth = Array("01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12")
szRng = Array("A4", "B4", "C4", "D4", "E4", "F4", "G4", "H4", "I4", "J4", "K4", "L4")

With ThisWorkbook

For i = 0 To szMounth()
    tempSlicer = GetSlicerItem(szslicer)
    
    If tempSlicer = "2021" & szMounth(i) Then
    tempSlicer = "2021" & szMounth(i)
    set temprange = szRng(?)
    Sheets(1).Range(temprange).Select
    End If
Next i

End With

有人可以帮我吗?

PS:我有一个函数可以将切片器项目作为字符串。

标签: excelvba

解决方案


关于这段代码的作用不太清楚,但这样的事情应该更接近:

Dim szslicer As String
szslicer = Slicer_Name

szMounth = Array("01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12")
szrng = Array("A4", "B4", "C4", "D4", "E4", "F4", "G4", "H4", "I4", "J4", "K4", "L4")

With ThisWorkbook
    tempSlicer = GetSlicerItem(szslicer)
    For i = 0 To UBound(szMounth)
        If tempSlicer = "2021" & szMounth(i) Then
            tempSlicer = "2021" & szMounth(i) 'what does this do?
            .Sheets(1).Range(szrng(i)).Select
            Exit For
        End If
    Next i
End With

推荐阅读