2016-05-05 6 views
0

Я пытаюсь создать собственные отчеты, используя созданные сводные таблицы VBA, и одна из частей, с которыми у меня возникают проблемы, заключается в том, что поле данных основывается на том, что он пользователь желания.Excel VBA - Использование переменной для установки функции поля сводной таблицы

Например: У меня есть раскрывающееся меню, которое отображает каждый тип функции PivotFields (сумма, min max и т. Д.) И в зависимости от того, что пользователь выбирает, хранится в виде строковой переменной.

Когда я запускаю мой код:

Dim valueXL As String 
valueXL = xlSum 

With Worksheets(sheetPivotName).PivotTables(sheetPivotName).PivotFields(valueType) 
.Function = valueXL 
.NumberFormat = "$#,##0.00" 
End With 

я получаю сообщение об ошибке, однако, если я заменю .function = valueXL с .function = xlSum он работает правильно.

Есть ли способ динамически установить значение .Function?

Благодаря

ответ

3

Как xlSum является числовым Excel константа вы должны изменить valueXL к целочисленным

Dim valueXL As Integer 
valueXL = xlSum 

или использовать прямые константы в коде

With Worksheets(sheetPivotName).PivotTables(sheetPivotName).PivotFields(valueType) 
    .Function = xlSum 
    .NumberFormat = "$#,##0.00" 
End With 
+0

или использовать 'CInt (valueXL)' ... еще нет смысла, что 'valueXL' определяется как строка:/ –

+0

Спасибо за это, я понятия не имел о xlSum, и эти значения рассматривались как целые числа, а не строки! – TMP4

0

Я нашел возможное решение, которое использует функцию Оценивать, однако мне было интересно, если есть какие-либо другие решения?

Если нет, я могу выбрать это как ответ.

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