Текущее время: Пн, июл 21 2025, 20:29

Часовой пояс: UTC + 3 часа


Правила форума


ВНИМАНИЕ!

Вопросы по SAP Query и Quick View - сюда



Начать новую тему Ответить на тему  [ Сообщений: 7 ] 
Автор Сообщение
 Заголовок сообщения: Неполучается записать формулу в Excel
СообщениеДобавлено: Пн, апр 21 2008, 14:27 
Ассистент
Ассистент

Зарегистрирован:
Чт, фев 07 2008, 11:47
Сообщения: 32
Пытаюсь записать формулу в Excel примерно вот такой вот формой
Code:
FORM WRITE_CELL
  USING X TYPE I
        Y TYPE I
        VAL.
  DATA S(250).

  WRITE VAL TO S.
  IF TRANSLATE = 'X'.
    PERFORM CHANGE_CODE_PAGE USING '' CHANGING S.
  ENDIF.
  SHIFT S LEFT DELETING LEADING SPACE.
  CALL METHOD OF EXCEL 'CELLS' = CELL
    EXPORTING
      #1 = X
      #2 = Y.
  SET PROPERTY OF CELL 'VALUE' = S.
  FREE OBJECT CELL.
ENDFORM.


Записывает формулы нормально(например сумма, или просто действия над ячейками) , но вот когда пытаюсь записать более сложную
Code:
=SUMPRODUCT((MOD(ROW(G33:G41)-ROW($C$19);3)=0)*(G33:G41))

то тогда вообще ничего в ячейку не записывает... хотя формула в экселе нормально работает :) По отдельности каждая формула работает но вот в целом , не хочет. В чём может быть проблема ?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, апр 21 2008, 14:40 
Директор
Директор

Зарегистрирован:
Чт, июн 21 2007, 09:01
Сообщения: 904
Откуда: УЖ 15/2
Пол: Мужской
Попробуйте
Code:
SET PROPERTY OF CELL 'FORMULA' = S.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, апр 21 2008, 14:42 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Вс, сен 02 2007, 15:10
Сообщения: 670
Откуда: Moscow
В ячейке и в коде на вижуалвасике текст в ячейке с формулой выглядит по-разному (запиши скрипт и сравни сам).
И саму формулу без "чудес" не всегда получается записать. Чтобы обойти последнее препятствие я писаль текст как 'Formulae=SUM(...)' потом заменял по всему листу Formulae пустотой.

_________________
Если кризис ведет к очищению, то удар битой по голове должен вести к просветлению. (с) Я.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, апр 21 2008, 14:46 
Ассистент
Ассистент

Зарегистрирован:
Чт, фев 07 2008, 11:47
Сообщения: 32
Alex80 написал:
Попробуйте
Code:
SET PROPERTY OF CELL 'FORMULA' = S.


Да эту вариацию тоже пробовал ... результат тот же

:)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, апр 21 2008, 15:02 
Ассистент
Ассистент

Зарегистрирован:
Чт, фев 07 2008, 11:47
Сообщения: 32
Моха написал(а):
В ячейке и в коде на вижуалвасике текст в ячейке с формулой выглядит по-разному (запиши скрипт и сравни сам).
И саму формулу без "чудес" не всегда получается записать. Чтобы обойти последнее препятствие я писаль текст как 'Formulae=SUM(...)' потом заменял по всему листу Formulae пустотой.


Замена по всему листу Formulae ЭТО КЛЁВАЯ ИДЕЯ!!! но пользователи не будут это постоянно делать. :)
Записал скрипт на вижуалвасике :) нехотит работать :) Как же тогда обычную формулу привести к нормальному виду ?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, апр 21 2008, 15:47 
Ассистент
Ассистент

Зарегистрирован:
Чт, фев 07 2008, 11:47
Сообщения: 32
Вопрос разрешился :) всё дело было в самой формуле ... почему то Эксель не хотел вычисялть MOD пришлось выразить через функцию ЦЕЛОЕ: MOD(n, d) = n - d*INT(n/d)
Всё спасибо Я ИДИЁТ, УБЕЙТЕ МИНЯ КТО-НИБУДЬ! Тема закрыта!!! :)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, апр 21 2008, 15:48 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Вс, сен 02 2007, 15:10
Сообщения: 670
Откуда: Moscow
CONCATENATE 'FORMULAE=СУММ(AF'
l_res_string
':AK'
l_res_string1
')'
INTO l_res_string.
ELSE.
l_res_string = l_header_rows.

SHIFT l_res_string LEFT DELETING LEADING ' '.

CONCATENATE 'FORMULAE=СУММ(R[-'
l_res_string
']C:R[-1]C[5])'
INTO l_res_string.
ENDIF.



if l_strings <> 0.
CALL METHOD OF ls_worksheetX 'Cells' = ls_rangeX.
CHECK sy-subrc EQ 0.

CALL METHOD OF ls_rangeX 'Select'.
CHECK sy-subrc EQ 0.

CALL METHOD OF ls_rangeX 'Replace'
EXPORTING #1 = 'FORMULAE' #2 = ''.
CHECK sy-subrc EQ 0.
endif.


Куски кода выдраны. Там еще проверка на стиль ссылок Excel-а.

_________________
Если кризис ведет к очищению, то удар битой по голове должен вести к просветлению. (с) Я.


Принять этот ответ
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 7 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex [Bot]


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB