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

Часовой пояс: 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 часа


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

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

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