2013-08-22 3 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]") 

Это, очевидно, не работает, и я не ожидал, что это, но я не могу понять, как я могу это рассматривать 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

Обнаружена проблема. Это отсутствовало и перед ["& ProductName", используя это как шарм.Спасибо! ActiveWorkbook.SlicerCaches ("Slicer_Name1"). VisibleSlicerItemsList = Array (_ "[Team Project]. [Имя узла проекта]. & [" & ProductName & "]") – Predator

+0

@Predator может быть, что я забыл '&', я обновил код, попробовав его снова. –

Смежные вопросы