Arrays 选择VBA中作为数组列出的切片器,因为它已成为数据模型?
我无法选择这些带有变量的powerpivot切片器。它们是日期(星期一、星期六或1/19-1/25)。由于某些原因,我无法确定如何在没有静态日期的情况下选择切片器,而是如何从星期一字符串和星期六字符串中选择我的日期字符串?我尝试将它们连接在一起,但没有成功Arrays 选择VBA中作为数组列出的切片器,因为它已成为数据模型?,arrays,excel,vba,powerpivot,Arrays,Excel,Vba,Powerpivot,我无法选择这些带有变量的powerpivot切片器。它们是日期(星期一、星期六或1/19-1/25)。由于某些原因,我无法确定如何在没有静态日期的情况下选择切片器,而是如何从星期一字符串和星期六字符串中选择我的日期字符串?我尝试将它们连接在一起,但没有成功 Sheets("Phone Report").Select ActiveWorkbook.SlicerCaches("Slicer_Weeks_Ago").VisibleSlicerItemsList = Array _ ( _
Sheets("Phone Report").Select
ActiveWorkbook.SlicerCaches("Slicer_Weeks_Ago").VisibleSlicerItemsList = Array _
( _
"[Phone Cube Query].[Weeks Ago].&[01/12 - 01/17]") 'So want to replace the 01/12 and the 01/17 with my string variables?
ActiveWorkbook.SlicerCaches("Slicer_Day_and_Rank").VisibleSlicerItemsList = _
Array( _
"[Phone Cube Query].[Day and Rank].&[1. Monday]", _
"[Phone Cube Query].[Day and Rank].&[2. Tuesday]")
Variables:
Today = Weekday(Date, vbMonday)
If Today = 2 Then
Todayy = Date
Monday = Date - 1
ElseIf Today = 3 Then
Todayy = Date
Monday = Date - 2
ElseIf Today = 4 Then
Todayy = Date
Monday = Date - 3
ElseIf Today = 5 Then
Todayy = Date
Monday = Date - 4
ElseIf Today = 1 Then
Todayy = Date - 2
Monday = Date - 7
End If
Todayy=left(Todayy, 5)
Monday=left(Monday, 5)
感谢您提供的任何可能的帮助或建议。我相信您现在已经找到了答案。我有这个问题好几个星期了,我试着做复杂的循环,但我找到了一个更简单的方法 是的,宏记录显示切片器信息的数组。我发现,如果删除代码的
array()
部分,您就可以完全按照需要执行操作
下面是我的快速示例<代码>操作是变量:
ActiveWorkbook.SlicerCaches("Slicer_Oper").VisibleSlicerItemsList = Array( _"[Actuals_Table].[Oper].& [" & Operation & "]")
改为
ActiveWorkbook.SlicerCaches("Slicer_Oper").VisibleSlicerItemsList = "[Actuals_Table].[Oper].&[" & Operation & "]"
我不知道您甚至可以将VBA与powerPivot一起使用,至少在Excel 2010中是这样。你使用的是什么版本的Excel?你的变量中到底有什么?我很困惑-如果项目是mm/yy格式的日期,但你有“星期日”和“星期一”,那怎么办?1/17/15实际上是星期六。你为什么要做所有这些计算,而你可以只做像weekdayname(weekday(#1/12#))这样的事情报告切片器每天都在变化,所以今天(星期二)它会显示01/19-01/20,我需要选择它。明天(星期三)切片机会显示01/19-01/21,然后是星期四01/19-01/22,依此类推