2016-10-06 3 views
1

Попытка положить формулу внутри строки и не может заставить ее работать. Может кто-нибудь помочь мне превратить это в строку? Я знаю, что нужно делать «» & «» в местах, я просто не знаю, где ....Формула Excel VBA внутри строки

Dim form As String 
form = =IFERROR(GETPIVOTDATA("[Measures].[Sum of Amount]",Pivot!$A$3,"[qAllData].[Year]","[qAllData].[Year].&[2.016E3]","[qAllData].[Month Name]","[qAllData].[Month Name].&["&$B9&"]","[qAllData].[PRODUCT_CODE]","[qAllData].[PRODUCT_CODE].&["&C$3&"]","[qAllData].[Product Name]","[qAllData].[Product Name].&["&C$4&"]")-C8-C7-C6-C5,0) 
+0

вы хотите его как строку с ссылками на там, так что бы выглядеть как ' "= IFERROR (GETPIVOTDATA (..., Pivot $ A $ 3, ...!"' или сделать вы хотите, чтобы 'Pivot! $ A $ 3' фактически был текстом в этой ячейке? – BruceWayne

+0

Что вы хотите, чтобы формула выглядела в электронной таблице? –

+1

Напишите нужную формулу на самом листе, чтобы убедиться, что она работает, и опубликуйте рабочая формула здесь с объяснением из которых вы хотите поменять местами переменные. Вся формула должна быть в кавычках с переменными вне тех котировок, которые объединены с '&'. –

ответ

2

Если formual дословно то, что у вас есть в таблице, но вы хотите, чтобы вставить его с VBA, то просто:

Dim form As String 
form = "=IFERROR(GETPIVOTDATA(""[Measures].[Sum of Amount]"",Pivot!$A$3,""[qAllData].[Year]"",""[qAllData].[Year].&[2.016E3]"",""[qAllData].[Month Name]"",""[qAllData].[Month Name].&[""&$B9&""]"",""[qAllData].[PRODUCT_CODE]"",""[qAllData].[PRODUCT_CODE].&[""&C$3&""]"",""[qAllData].[Product Name]"",""[qAllData].[Product Name].&[""&C$4&""]"")-C8-C7-C6-C5,0)" 

Это просто заменить каждый " на "" и завернул все это в кавычки. VBA принимает его как действительную формулу, хотя я не уверен, что это то, что вы действительно хотите.

+0

Работа прекрасна! Спасибо @John Coleman –

+0

Похож мы ответили на это в то же время ... –

1

Если рабочая формула, и вы просто хотите его в переменной как String, все, что вам нужно сделать, это начать и закончить его в двойные кавычки ("), а затем дважды все внутренние кавычки (""), как так :

form = "=IFERROR(GETPIVOTDATA(""[Measures].[Sum of Amount]"",Pivot!$A$3,""[qAllData].[Year]"",""[qAllData].[Year].&[2.016E3]"",""[qAllData].[Month Name]"",""[qAllData].[Month Name].&[""&$B9&""]"",""[qAllData].[PRODUCT_CODE]"",""[qAllData].[PRODUCT_CODE].&[""&C$3&""]"",""[qAllData].[Product Name]"",""[qAllData].[Product Name].&[""&C$4&""]"")-C8-C7-C6-C5,0)" 
Смежные вопросы