0 / 0 / 0
Регистрация: 07.02.2012
Сообщений: 40
|
||||||||||||||||
1 | ||||||||||||||||
Работа с Excel (формулы) в Delphi03.07.2014, 08:20. Показов 9804. Ответов 6
Метки нет (Все метки)
Добрый день!
Нужна ваша помощь знатоки! ) Есть шаблон документа, я его заполняю и делаю копию. В этом документе есть несколько листов. И нужно что одни ячейки листа А были ровны ячейкам листа В. все вроде бы просто!!!!) Для этого использовал формулы типа: 1) =ЕСЛИ(B!AD9<>"";B!AD9;"") и 2) =СЦЕПИТЬ(B!AD9) Пришлось их, т.к. если писать просто (=B!AD9), получаю ноль, заполняемая ячейка будет пуста. Но пошли проблемы!!! Когда копирую из шаблона листы
... формулы теряются ((( Если пытаюсь cоpдать формулу из Delphi в Excel, используя первую формулу:
Если пытаюсь cоpдать формулу из Delphi в Excel, используя вторую формулу:
Как победить это дело нужно чтобы при заполнении B, А становилось равно B и всего!!!
0
|
03.07.2014, 08:20 | |
Ответы с готовыми решениями:
6
Excel+Delphi - вставка формулы Перевод Excel формулы в Delphi Запись формулы в MS Excel из под Delphi Работа с Excel: как получить результат выполнения формулы |
13107 / 5888 / 1707
Регистрация: 19.09.2009
Сообщений: 8,808
|
|||||||||||||||||||||
03.07.2014, 09:37 | 2 | ||||||||||||||||||||
Сообщение было отмечено Z-7000 как решение
Решение
Достаточно формулы №1.
Выполнение первой строки не приводит к потере формул. Значит, где-то дальше в коде формулы затираются. Если формула устанавливается программно, то она должна быть записана в варианте для английского языка: Код
=IF(B!AD9<>"";B!AD9;"")
В общем, надо разобраться с кодом, который идёт после строки:
Добавлено через 19 минут Вернее, лучше так - если формул много, то перед их записью надо отключить режим автоматического пересчёта. А после записи всех формул, вновь включить автоматический пересчёт:
2
|
0 / 0 / 0
Регистрация: 07.02.2012
Сообщений: 40
|
||||||||||||||||
04.07.2014, 03:41 [ТС] | 3 | |||||||||||||||
Большое спасибо за такой прекрасный ответ.
Совершенно верно, что нужно писать все функции на английском языке ) я не обратил внимания. Тут еще я допустил ошибку:
И точно, копирование не удаляет формулы, это я затирал формулы в процессе заполнения листов.!!! И получается что цифры:
0
|
13107 / 5888 / 1707
Регистрация: 19.09.2009
Сообщений: 8,808
|
|||||||||||
04.07.2014, 08:45 | 4 | ||||||||||
Правильно. Только это не в Delphi дело. Это в Excel такая особенность записи формул через программу - что аргументы надо разделять запятой, а не точкой с запятой.
Это константы, с помощью которых задаётся режим перерасчёта формул. Если мы пишем так:
А если мы пишем так:
0
|
0 / 0 / 0
Регистрация: 07.02.2012
Сообщений: 40
|
|
04.07.2014, 09:38 [ТС] | 5 |
Все предельно ясно )
И еще один маленький вопрос, больше относящийся к Excel. Есть ячейка с текстом и если текст в ней подчеркнут, то другая ячейка становилась ей ровна. что-то типа Код
=IF(лист!N83Font.Underline=true,лист!N83,"")
0
|
13107 / 5888 / 1707
Регистрация: 19.09.2009
Сообщений: 8,808
|
|
04.07.2014, 10:38 | 6 |
Вот с этим разбираться надо - возможно ли такое сделать через формулу? А через программу сделать можно - написать код, который будет проверять свойства шрифта.
0
|
0 / 0 / 0
Регистрация: 07.02.2012
Сообщений: 40
|
|
04.07.2014, 11:04 [ТС] | 7 |
) Да через программу это легко согласен.!
Но просто программа отработала, а есть необходимость редактировать данные в Excel и только в одном листе, а в остальных автоматом изменяются значения. Ладно, буду думать) если у вас есть идеи пишите, буду рад.! Еще маленький вопрос уже программный, Excel открывается нормально, но почему-то за формой программы, такое заметил с в десятом Excel. Как заставить его открываться поверх, всех окон и в развернутом виде, а не маленьким прямоугольником, что тоже бывает.!.?
0
|
04.07.2014, 11:04 | |
04.07.2014, 11:04 | |
Помогаю со студенческими работами здесь
7
Работа с Excel в Delphi. Работа с Excel в Delphi Работа с Excel из Delphi Работа c Excel через delphi Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |