Страницы: 1
RSS
Записать Суммесли в VBA (.FormulaLocal)
 
Не могу совладать с формулой:
Cells(x, 22).FormulaLocal = "=Суммесли(y20:z"&x&";""usd"";s20:u"&x&")"
при её написании vba ругается ошибкой : "expected :end of statement". Где ошибка  ? :sceptic:
 
Где написано. Нет End If или иного завершающего конструкцию оператора. Только Вы вот нам одну строку показали, а ошибка-то в другом месте...

P.S. Амперсанды(&) надо с пробелами ставить.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
"=суммесли(y20:z20,""usd"",s20:u20)"
Наверное так, проверьте
Изменено: alexthegreat - 08.06.2015 15:21:35
 
The_Prist, если бы. VBA выделяет формулу красным .
Код простой:
Код
1
2
3
4
5
Sub wer()
Dim x As Integer
x = Range("b19").End(xlDown).Row+2
Cells(x, 22).FormulaLocal = "=суммесли(y20:z"&x&";""usd"";s20:u"&x&")"
End Sub
Изменено: grigju - 08.06.2015 15:40:08
 
alexthegreat, там диапазон меняется, если бы там была точная ссылка я бы ручками в excel написала бы.
 
Кавычки должны быть в кавычках. Причем каждая. Проверьте
Код
1
Cells(x, 22).FormulaLocal = "=суммесли(y20:z" & x & ";" & """usd""" & ";s20:u" & x & ")"
Изменено: Sanja - 08.06.2015 15:34:12
Согласие есть продукт при полном непротивлении сторон
 
:sceptic: странно.

Можете посоветовать мне книгу с разбором функции formulalocal?
Изменено: grigju - 08.06.2015 15:40:47
 
Цитата
grigju написал: попробуйте в VBA
см. выше
Согласие есть продукт при полном непротивлении сторон
 
Цитата
grigju написал: странно.
что именно?
Цитата
grigju написал: посоветовать КНИГУ с разбором функции formulalocal?
:D ну это вряд-ли. Дело не в этом свойстве (а не функции), дело в синтаксисе языка VBA
Согласие есть продукт при полном непротивлении сторон
 
Sanja,
Странно то, что при написании функции
  cell.FormulaR1C1 = "=IF(RC[-2]=""USD"",RC[-5],IF(RC[-2]=""EUR"",RC[-5]*R4C14,RC[-5]*R6C14))"
всё работает и без кучи кавычек.
Изменено: grigju - 08.06.2015 16:06:59
 
Цитата
Sanja написал:
Кавычки должны быть в кавычках
Что-то изврат какой-то...Зачем амперсанд там, где объединять нечего?
Цитата
grigju написал:
VBA выделяет формулу красным
Я же написал - ПРОБЕЛЫ НУЖНЫ ДЛЯ АМПЕРСАНДА:
Код
1
Cells(x, 22).FormulaLocal = "=суммесли(y20:z" & x & ";""usd"";s20:u" & x & ")"

в таком виде формул более чем работоспособна, если переменной х присвоено нужное значение.
Зачем вопросы задаете, если ответы читаете наполовину?


P.S. Кстати, что за странный вид формулы вообще? Два столбца(Y-Z) с критериями против трех(S-U) с данными для суммирования?
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
The_Prist, там файл, который сначала был нарисован дизайнерами и согласован. Т.ч.  чтобы там красоты не поехали пришлось разносить КП  по  клеточкам и 1 столбец таблицы (малой части КП) периодически равен 3 или 2 объеденным столбцам. Как-то так.  

The_Prist, Спасибо за ответ!
 
Цитата
grigju написал:
и 1 столбец таблицы (малой части КП) периодически равен 3 или 2 объеденным столбцам
Так объединенная ячейка все равно содержит значение только в левой верхней ячейке. Поэтому в макросе можно указать и один столбец, чтобы неожиданностей не было.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Страницы: 1
Читают тему
Loading...