首页 文章

如何在Excel切片器中找到多维数据集中的维度

提问于
浏览
0

我试图找出如何为我的切片机获取立方体的尺寸 . 我已经尝试了一切以使其工作,但没有成功 .

下面的代码是我用来让切片器将日期设置为今天的日期 .

Dim today As Date
today = Now
Dim todayString As String
todayString = Format$(today, "mm/dd/yyyy")
ThisWorkbook.SlicerCaches("Slicer_Created_on").ClearManualFilter
ActiveWorkbook.SlicerCaches("Slicer_Created_on").VisibleSlicerItemsList=
Array( _  
"[Period].[Date].&[" & todayString & "]") ' This is where the error occurs.

上述代码在此站点上的以下链接中找到:Set excel slicer to todays date

我试着修改它以便

"[Period].[Date].&[" & todayString & "]")

采用以下格式:“[期间] / [日期] /&[”&todayString&“]”)

创建了另外两个维度:年和月,并将其修改为:昏暗月月=格式$(今天,“mm”)todaystring =格式$(今天,“dd”)年份=格式$(今天,“yyyy” )

"[Month]/&["& todaystring & "]" & [Year]")

感谢您的时间 .

1 回答

  • 0

    经过几个小时的修补,我无法弄清楚如何确定多维数据集的值是什么,因此我使用了在此站点上找到的不同代码 .

    在此链接:Set excel slicer to todays date

    Sub SlicerSelectToday()

    Dim today As Date
    today = Now
    Dim todayString As String
    todayString = Format$(today, "m/d/yyyy") ' I have US date
    
    Dim item As SlicerItem
    
    For Each item In ThisWorkbook.SlicerCaches("Slicer_Date").SlicerItems
        If item.Name = todayString Then
            item.Selected = True
        Else
            item.Selected = False
        End If
    Next item
    
    ThisWorkbook.RefreshAll
    

    结束子

    编辑:如果可能的话,避免循环遍历所有日期值,因为它需要更长的时间 . 我强烈建议您使用数据透视表记录要完成的任务的宏,然后根据需要编辑宏 . 例如,在应用日期过滤器"Date Filter>Yesterday"值时仅记录昨天的数据时记录操作的宏 . 类似于我在此链接中所做的事情Excel 2013 VBA Pivot Table Select Only Top 5 Items With Ties . 我希望这可以帮助别人 .

相关问题