Активная ячейка.Формула = Переменная Не Работает

#excel #vba

Вопрос:

Я пытаюсь заполнить активную ячейку формулой. Примером желаемой формулы является =SUMIF(K30:K40,DescVar,E30:E40), где DescVar-строковая переменная.

Вот фрагмент кода, который вызывает у меня проблемы:

 If Selection.Value lt;gt; DescVar Then  Selection.Offset(1, -6).Select  Dim CalcRow As Integer, FromRow As Integer, ToRow As Integer CalcRow = ActiveCell.Row FromRow = CalcRow   1 ToRow = FromRow   10  Dim SumFormula As String SumFormula = "='SUMIF(K" amp; FromRow amp; ":K" amp; ToRow amp; "," amp; DescVar amp; ",E" amp; FromRow amp; ":E" amp; ToRow amp; ")"  ActiveCell.Formula = SumFormula  End If  

Есть какие-нибудь идеи?

Комментарии:

1. в чем проблема с вашим кодом? Что происходит такого, чего не должно быть? Вам, вероятно, нужно удалить '

2. Я продолжаю получать ошибку во время выполнения «1004». Ошибка, определяемая приложением или объектом

3. По какой линии? Вы пробовали это после удаления ' в формуле?

4. Я сделал, я получаю его на «ActiveCell. Формула = Сумма формул».

5. Поскольку вам нужно что-то подобное =SUMIF(K1:K10,"foo",E1:E10) , вы должны добавить кавычки вокруг DescVar . Что касается Debug.Print , проверьте вывод в ближайшем окне.

Ответ №1:

Поскольку конечный результат должен быть примерно таким =SUMIF(K1:K10,"foo",E1:E10) , вам нужно добавить кавычки DescVar , и их нужно удвоить:

 SumFormula = "=SUMIF(K" amp; FromRow amp; ":K" amp; ToRow amp; ",""" amp; DescVar amp; """,E" amp; FromRow amp; ":E" amp; ToRow amp; ")"  

Комментарии:

1. Это сработало, Бен, СПАСИБО! Я не могу поднять голос из-за отсутствия репутации, но вы спасли мне жизнь.