Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 选择VBA中作为数组列出的切片器,因为它已成为数据模型?_Arrays_Excel_Vba_Powerpivot - Fatal编程技术网

Arrays 选择VBA中作为数组列出的切片器,因为它已成为数据模型?

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 _ ( _

我无法选择这些带有变量的powerpivot切片器。它们是日期(星期一、星期六或1/19-1/25)。由于某些原因,我无法确定如何在没有静态日期的情况下选择切片器,而是如何从星期一字符串和星期六字符串中选择我的日期字符串?我尝试将它们连接在一起,但没有成功

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,依此类推