Shutoff |
Отправлено: 23.05.2003, 15:18 |
|
Не зарегистрирован
|
Приветствую!
Ощущаю, что вопрос задаю старый, но...
Как после изменения данных в ячейках, связанных с формулой, заставить Excel вернуть пересчитанное значение ячейки с формулой?
Напр:
В С12 записано след:
=РАЗНДАТ(КОНМЕСЯЦА(C1;0);КОНМЕСЯЦА(C2;0);"M")
После записи из билдера в С1 и С2 новых значений, при попытке прочитать Value из С12 получаю #ИМЯ-тра-ля-ля...Т.е., как бы заставить его надо CalculateFull сделать, но и это не помогает
Уж не знаю, что и делать... |
|
Admin |
Отправлено: 27.05.2003, 18:18 |
|
Владимир
Группа: Администратор
Сообщений: 1190
|
Можно скачать пример с сайта добавить на форму Button1, Label3, Label4
в .h файл описание функций
private:
Variant __fastcall fromExcelCell(int Row, int Column);
Variant __fastcall fromExcelFormula(int Row, int Column);
и в .cpp следующий код:
CODE |
//---------------------------------------------------------------------------
// получить значение ячейки
Variant __fastcall TForm1::fromExcelCell(int Row, int Column)
{
try{
Variant result,cur;
cur = Sh.OlePropertyGet("Cells",Row,Column);
result = cur.OlePropertyGet("Value");
return result;
}catch(...) {;}
}
//-------------------
// получить формулу из ячейки
Variant __fastcall TForm1::fromExcelFormula(int Row, int Column)
{
try{
Variant result,cur;
cur = Sh.OlePropertyGet("Cells",Row,Column);
result = cur.OlePropertyGet("Formula");
return result;
}catch(...) {;}
}
//-------------------
// получаем значение и формулу из ячейки 34,5
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Label3->Caption = fromExcelCell(34,5);
Label4->Caption = fromExcelFormula(34,5);
}
//---------------------------------------------------------------------------
|
Тогда в Label3->Caption Вы получите значение,
а в Label4->Caption получите формулу в указанной ячейке.
Отредактировано Admin — 27 May 2003, 18:21
|
|
Гость_Shutoff |
Отправлено: 28.05.2003, 08:55 |
|
Не зарегистрирован
|
Скачать-то можно, но...как мне сказали, проблема в самой ф-ии OleProperty... и работой борланда с русскими локалями. Вот этот ответ меня и интересуте — что и где поправить? |
|
Admin |
Отправлено: 28.05.2003, 15:28 |
|
Владимир
Группа: Администратор
Сообщений: 1190
|
Так вы попробуйте, работает у Вас или нет ?
Например у меня работает.
Если у Вас нет — приведите код на C++Builder где не работает
Отредактировано Admin — 28 May 2003, 15:30
|
|
|