2013-08-22 17 views
2

这是专家们在这里:)设置限幅器使用VBA宏(Excel)中

我试图用设置切片机给一个变量的值很琐碎的问题一个变量的值一个宏。我已经声明了一个String变量。

Dim ProductName As String 
'+Some code here to assign a value to ProductName (value of a cell) 
ActiveWorkbook.SlicerCaches("Slicer_Name1").VisibleSlicerItemsList = Array(_ 
      "[Team Project].[Project Node Name].&[ProductName]") 

这显然是行不通的,我没想到它,但我想不通我怎么能有它把产品名称作为变量,而不是文字。

其余的代码很好,因为我可以通过指定产品名称而不使用变量来成功设置切片器。

ActiveWorkbook.SlicerCaches("Slicer_Name1").VisibleSlicerItemsList = Array(_ 
      "[Team Project].[Project Node Name].&[Bedsheets]") 

回答

3

棒变出字符串

Dim ProductName As String 
ActiveWorkbook.SlicerCaches("Slicer_Name1").VisibleSlicerItemsList = Array(_ 
      "[Team Project].[Project Node Name].&[" & ProductName & "]") 
+0

不幸的是没有工作的。运行时错误'1004':在OLAP多维数据集中找不到项目。它确实存在,但是因为如果我指定产品名称而不是使用它的变量,它会起作用。 – Predator

+1

发现此问题。缺少&before [“&ProductName。使用此工作就像一个魅力。谢谢!ActiveWorkbook.SlicerCaches(”Slicer_Name1“)。VisibleSlicerItemsList = Array(_ ”[Team Project]。[Project Node Name]。&[“ &ProductName&“]”) – Predator

+0

@Predator可能是我忘了'&',我已经更新了代码再试一次。 – 2013-08-22 12:23:02