Поиск:

Ответ в темуСоздание новой темы Создание опроса
> падает EXCEL, при вставке формулы 
V
    Опции темы
chaos
Дата 30.7.2007, 16:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Серийный программист
****


Профиль
Группа: Завсегдатай
Сообщений: 2979
Регистрация: 7.7.2004
Где: Екатеринбург

Репутация: нет
Всего: 44



Здрасте!!!!
Столкнулся с такой проблемой: генерирую телефонные справочники в EXCEL 2007.
при вызове метода объекта CRange 
Код

put_Formula(_T("=МАКС(2;5)")) 

эсель падает, сообщения об ошибке ни какого нет. заметил что если заменить ; на ченить другое, то не падает  smile 
как быть не знаю  smile 

put_Formula выглядит так
Код


void put_Formula(VARIANT newValue)
{
    static BYTE parms[] = VTS_VARIANT ;
    InvokeHelper(0x105, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms, &newValue);
}


мож кто сталкивался?



Это сообщение отредактировал(а) chaos - 31.7.2007, 07:23
PM WWW   Вверх
Santilka85
Дата 31.7.2007, 12:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 202
Регистрация: 8.6.2007
Где: Новосибирск

Репутация: нет
Всего: 1



chaos, 
тебе что надо то...
я просто с Excel работал но тебя не понял...э
суть проги в чём заключается??
поделись помогу чем смогу smile

Добавлено через 1 минуту и 10 секунд
Код

void put_Formula(VARIANT newValue)
{
    static BYTE parms[] = VTS_VARIANT ;
    InvokeHelper(0x105, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms, &newValue);
}


этим ты что пытаешься делать?
--------------------
Снегоболотоходы WP8X8 всего за 480000 рублей и аксессуары к ним.
PM MAIL   Вверх
chaos
Дата 31.7.2007, 16:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Серийный программист
****


Профиль
Группа: Завсегдатай
Сообщений: 2979
Регистрация: 7.7.2004
Где: Екатеринбург

Репутация: нет
Всего: 44



Santilka85, не суть важно что я пытаюсь сделать. Проблема в том что я "тупо" не могу записать в ячейку формулу(см. выше)
Что я делаю: 

Код

CComVariant vt((long)DISP_E_PARAMNOTFOUND, VT_ERROR);

CApplication oExcel;
oExcel.CreateDispatch(_T("Excel.Application"));

oExcel.put_Visible(TRUE);
CWorkbooks oWorkBooks = oExcel.get_Workbooks();
oWorkBooks.Add(vt);

CWorksheets oWS = oExcel.get_Worksheets();
CWorksheet oSheet = oWS.get_Item(1);


CRange oCell;
oCell = oSheet.get_Range(CComVariant(_T("A1")), CComVariant(_T("A1")));
oCell.put_Formula(CComVariant(L"=МАКС(2;5)"));//ТУТ ВОТ ЖОПА!!!!


Это сообщение отредактировал(а) chaos - 31.7.2007, 16:14
PM WWW   Вверх
Santilka85
Дата 1.8.2007, 05:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 202
Регистрация: 8.6.2007
Где: Новосибирск

Репутация: нет
Всего: 1



chaos, нуу я вообще вот ТАК работал с Excel:

Код

.....
Variant my_workbook;
Variant my_worksgeet;
Variant my_range;

PropertyGet Range ("Range");
PropertyGet SetValue ("Value");
PropertyGet SetFormula ("Formula");
PropertyGet GetValue ("Value");
PropertyGet GetFormula ("Formula");

my_workbook = my_excel.OlePropertyGet ("ActiveWorkbook");
my_worksheet = my_workbook.OlePropertyGet ("ActiveSheet");

Range.ClearArgs();//очищаемся :)
SetValue.ClearArgs();//очищаемся :)

my_range = my_worksheet.Exec (Range<<"A1");//встаём на ячейку A1
my_range.Exec (SetValue<<"приветик");//записываем туда текст 

Range.ClearArgs();//очищаемся :)
my_range = my_worksheet.Exec (Range<<"B1:B5");//встаём на ЭТи ячейки (диапазон)
my_range.Exec (SetFormula<<"=rand()");//генерируем случ числа

Range.ClearArgs();//очищаемся :)
SetValue.ClearArgs();//очищаемся :)
my_range = my_worksheet.Exec (Range<<"A2");//встаём на ячейку A2

my_range.Exec (SetFormula<<"=sum(B1:B5)");// ВСТАВЛЯЕМ ФОРМУЛУ
....



что непонятно спрашивай smile 

вопросы появятся обращайся (если что я на работе, через Асю быстрее отвечу)...
--------------------
Снегоболотоходы WP8X8 всего за 480000 рублей и аксессуары к ним.
PM MAIL   Вверх
chaos
Дата 1.8.2007, 07:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Серийный программист
****


Профиль
Группа: Завсегдатай
Сообщений: 2979
Регистрация: 7.7.2004
Где: Екатеринбург

Репутация: нет
Всего: 44



щас проверил свой код на 2003 офисе - все гуд smile  smile  smile

Добавлено через 8 минут и 30 секунд
вообщем все гуд(с 2003 офисом). Темку закрываю
PM WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: COM/DCOM/ActiveX/ATL/CORBA | Следующая тема »


 




[ Время генерации скрипта: 0.0438 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.