Имя: Пароль:
1C
1С v8
Некорректно отрабатывает применение формулы к ячейке Excel
,
0 Паланик
 
20.10.11
09:48
Подключаюсь к экселевскому файлу через Application.
Далее идет некая обработка и в конце суммирую значения по строкам, вот так:

Лист.Cells(10, 25).Formula = "=СУММ(R[5]C:R[" + Формат(Строка, "ЧГ=0")+ "]C[1])";

Затем захожу в этот файл и вижу в этой ячейке #ИМЯ?, вместо суммы. Но стоит два раза кликнуть по ней и уйти из редактирования, сразу всё суммирует. Как победить этот эффект?

П.С.: В других местах тоже использую формулу, и там всё корректно.
1 Паланик
 
20.10.11
10:17
Эксель информирует:

Возможные причины и решения
Используется функция, входящая в состав настройки «Пакет анализа», которая не загружена

Установите и загрузите надстройку «Пакет анализа».

Инструкции

В меню Сервис выберите команду Надстройки.

В списке надстроек выберите Пакет анализа и нажмите кнопку OK.

Выполните инструкции программы установки, если это необходимо.

Используется имя, которое не было определено

Определите имя. Выберите команду Имя в меню Вставка , а затем команду Присвоить. Кроме того, команда Присвоить используется для добавления имени, отсутствующего в списке.

Ошибка в написании имени

Проверьте орфографию. Выберите имя в строке формул , нажмите клавишу F3, выберите требуемое имя, а затем нажмите ОК.
В формуле без включенных заголовков используется заголовок

Разрешите использование заголовков. Выберите команду Параметры в меню Сервис, затем выберите вкладку Вычисления. В группе Параметры книги установите флажок допускать названия диапазонов.

Ошибка в написании имени функции

Исправьте написание имени. Вставьте в формулу правильное имя функции, выполнив команду Функция меню Вставка .
В формулу введен текст, не заключенный в двойные кавычки.

Microsoft Excel пытается распознать такую запись как имя, даже если это не предполагалось.

Заключите в двойные кавычки содержащийся в формуле текст. Пример правильной записи формулы, объединяющей текстовый фрагмент «Всего: » со значением ячейки B50:
="Всего: "&B50

В ссылке на диапазон ячеек пропущено двоеточие (:)

Исправьте формулу так, чтобы во всех ссылках на диапазон ячеек использовался знак двоеточия (:), например: СУММ(A1:C10).

Изменен другой лист, не заключенный в ординарные кавычки

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

Синтаксис то верный, имена тоже верные, ибо после двойного щелчка всё работает, что за чудеса?
2 Fragster
 
гуру
20.10.11
10:20
а "=" там точно нужно?
3 Паланик
 
20.10.11
10:25
(2) Ну в описании так, эта строка целиком вставляется в строку формулы ячейки, а = там нужно.
4 Паланик
 
20.10.11
10:29
Есить такие вещи в коде, они работают как надо:
Лист.Cells(Строка, 25).Formula = "=RC[-7]*RC[-4]";
5 Паланик
 
20.10.11
10:41
Сейчас пробовал разные варианты, и такой косяк возникает при использовании "СУММА", т.е. без функций тупо арифметика отрабатывает нормально.
6 Паланик
 
20.10.11
10:46
(5) *СУММ
7 korefana
 
20.10.11
10:58
а если СУММ по аглицки написать попробовать?
8 Kerk
 
20.10.11
10:59
Попробуй типа "=СУММ(A1:E2)"
9 Kerk
 
20.10.11
11:01
А ты тут   \/:
"=СУММ(R[5]C:R[" + Формат(Строка, "ЧГ=0")+ "]C[1])"
не забыл указать [1]?
10 Kerk
 
20.10.11
11:01
Т.е. после первой "С"
11 catena
 
20.10.11
11:57
+(7)Помню, было что-то с написанием рус/англ...
12 SolarGard2
 
20.10.11
12:12
Эти "грабли" проходили. Пиши формулы по английски.
13 Паланик
 
20.10.11
12:36
(7) По-аглецки даже после двойного щелчка не суммирует:
Лист.Cells(10, 25).Formula = "=summ(R[5]C:R[" + Формат(Строка, "ЧГ=0")+ "]C[1])";

(9) Нет, там просто объединенные 2 ячейки, нужна именно С.
14 Паланик
 
20.10.11
12:49
(8) Такая же фигня.(
15 Паланик
 
20.10.11
13:16
(12) Получается, ты выкрутился использованием аглецкого написания формул, а у меня они вообще не работают, ни так, ни сяк... ЧЯДНТ?
Пробовал предварительно писать "мусор" в эту ячейку, тоже не спасло.

Даже так вот, решил просто потестить:

Лист.Cells(10, 25).Formula = "=СУММ(G4:G5)"; //Суммирую 2 пустые ячейки
Лист.Cells(10, 27).Value = Лист.Cells(10, 25).Value; //копирую

в результате получил в 10,27 = -2146826259

Откуда это число? оО
16 Паланик
 
20.10.11
14:06
Мужики, выручайте)
17 catena
 
20.10.11
14:51
(15)О, отрыла свою обработку. Я писала так:
   Лист2Штатки.Cells(8,4).FormulaR1C1 = ФормулаОбщКол;
18 Паланик
 
20.10.11
15:37
(17) Не долго я радовался этому посту... не взлетело даже так.
19 Паланик
 
20.10.11
15:57
Взлетело вот так:
Лист.Cells(10, 25).FormulaR1C1 = "=SUM(R[5]C:R[" + Формат(Строка, "ЧГ=0")+ "]C[1])";

Всем спасибо!!
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан