| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Excel VBA. Как вбить в ячейку формулу, суммирующую ячейки на разных листах?

Excel VBA. Как вбить в ячейку формулу, суммирующую ячейки на разных листах?

Ответ
Поиск в этой теме
Непрочитано 10.06.2009, 12:46 #1
Excel VBA. Как вбить в ячейку формулу, суммирующую ячейки на разных листах?
AlexV
 
Инженер
 
С-Пб
Регистрация: 02.10.2008
Сообщений: 3,686

Имеем:
Код:
[Выделить все]
...
Dim rng As Range
...
tmptxt = "СУММ(" & Data_Arr(ij)(5) & ")"
Set rng = SWorkBook.Sheets.Item(i).Cells(j, 6)
rng.FormulaR1C1=tmptxt
В элементах массива Data_Arr(ij)(5) забит текст типа "лист1!F6;лист11!F7;лист2!F8;лист3!F9", т.е в формате "имя листа!адрес ячейки;...". Все нормально работает, в результате в ячейку записывается текст типа "СУММ(лист1!F6;лист11!F7;лист2!F8;лист3!F9)", и если вручную перед СУММ вбить знак равенства, то в ней появляется работающая формула суммы ячеек с разных листов. Если ж попытаться знак "=" этот вбить программно, в переменную :
Код:
[Выделить все]
tmptxt = "=СУММ(" & Data_Arr(ij)(5) & ")"
, то получаем ошибку "Application-defined or object-defined error".
Где здесь собака порылась? Может, для ввода формул другие методы надо использовать?

Попробовал иначе данные по ячейкам собирать... теперь переменная tmptxt содержит текст типа:
"лист1!F6+лист11!F7+лист2!F8+лист3!F9"
Опять таки, при ручном добавлении "=" в ячейку формула образуется корректно, если же tmptxt = "=лист1!F6+лист11!F7+лист2!F8+лист3!F9", то в ней ошибка: "ячейка содержит нераспознанный текст." А все адреса ячеек почему-то заключаются в одинарные кавычки "=лист1!'F6+'..."


Ладно, "я тебя породил, я тебя и отвечу..." Надо использовать не rng.FormulaR1C1=tmptxt, а rng.FormulaLocal = tmptxt
Тогда все пучком...
__________________
...Не пытайся гнуть ты ложку,
Не вяжи её узлом.
Ложка - ложка понарошку,
А по правде, - это лом!

Последний раз редактировалось AlexV, 10.06.2009 в 14:13. Причина: Нашел ответ...
Просмотров: 13689
 
Непрочитано 20.11.2009, 23:15
#2
Mikka


 
Регистрация: 05.08.2008
Сообщений: 155


Цитата:
Сообщение от AlexV Посмотреть сообщение
Ладно, "я тебя породил, я тебя и отвечу..." Надо использовать не rng.FormulaR1C1=tmptxt, а rng.FormulaLocal = tmptxt
Тогда все пучком...
Или вместо
Код:
[Выделить все]
tmptxt = "=СУММ(" & Data_Arr(ij)(5) & ")"
Применить английский эквивалент формулы, т.е.:
Код:
[Выделить все]
tmptxt = "=SUM(" & Data_Arr(ij)(5) & ")"
Mikka вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Excel VBA. Как вбить в ячейку формулу, суммирующую ячейки на разных листах?

Размещение рекламы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Рифмоплетство. Kryaker Разное 554 14.11.2023 11:59
LISP. Вставка в таблицу поля, соотвествующего площади примитива Profan Готовые программы 272 06.06.2021 23:12
Как получить из excel указатель на ячейку с координатами x, Ax3 Программирование 3 03.08.2007 17:10
ЮМОР 2006 =) Perezz!! Разное 1122 04.01.2007 00:46