Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2011.07.17;
Скачать: CL | DM;

Вниз

как вставить формул в эксель?   Найти похожие ветки 

 
Savek   (2011-04-08 15:26) [0]

ExcelApp := CreateOleObject("Excel.Application");
 ExcelApp.WorkBooks[1].WorkSheets.Add;

   ExcelApp.Range["B1"].Select;
   ExcelApp.ActiveCell.FormulaR1C1:="=ГИПЕРССЫЛКА("http://www.сайт.рф/catalog/images/big/.jpg";"ФОТО")";

на последней строке получаю исключение:
First chance exception at $760CB727. Exception class EOleException with message "OLE error 800A03EC". Process Knopka.exe (1304)
если из вставляемого текста убрать знак =, вставка проходит без ошибок. т.е. не удаётся вставить именно формулу. Что не нравится экселю? Подскажите как исправить этот участок кода, чтобы можно было вставлять в  формулу?


 
И. Павел ©   (2011-04-08 15:44) [1]

X.WorkBooks[1].WorkSheets[1].Cells[j, i].formulaLocal:="=ГИПЕРССЫЛКА("http://www.сайт.рф/catalog/images/big/.jpg";"ФОТО")";//ADOQ.Fields[i-1].AsString;


 
И. Павел ©   (2011-04-08 15:52) [2]

Про FormulaR1C1 из msdn:

> Использование этого свойства для элемента управления NamedRange, содержащего несколько ячеек, приведет к возникновению исключения.

Может быть, ошибка возникает именно из-за использования Range.


 
sniknik ©   (2011-04-08 16:06) [3]

> ГИПЕРССЫЛКА
заменил бы на HYPERLINK ..., хотя не гарантирую
(в ворде, примерно то же самое,  работает)


 
savek   (2011-04-08 16:29) [4]


> заменил бы на HYPERLINK ...,

не помогло. всё гораздо хуже: даже "=R1C1" не удаёся вставить
Может можно отключить реакцию экселя на время вставки?
ExcelApp.Application.EnableEvents := false;
не помогает...


 
sniknik ©   (2011-04-08 18:45) [5]

вот блин, только заметил...  
> ExcelApp.Range["B1"].Select;
> ExcelApp.ActiveCell.FormulaR1C1:="=ГИПЕРССЫЛКА("http://www.сайт.рф/catalog/images/big/.jpg";"ФОТО")";
это от листа должно быть, а не приложения.

в [1] кстати правильно...


 
savek   (2011-04-09 11:53) [6]

да, действительно правда в [1]
сопутствующий вопрос, а как вставить вариантый массив, содержащий формулы? Сам не могу допереть, проблема та же

ArrayData := VarArrayCreate([1, RowCount, 1, ColCount], varVariant);
...
Cell1 := WorkBook.Sheets[sheet[s]].Cells[BeginRow, BeginCol];
Cell2 := WorkBook.Sheets[sheet[s]].Cells[BeginRow  + RowCount - 1, BeginCol +
ColCount - 1];
Range := WorkBook.Sheets[sheet[s]].Range[Cell1, Cell2];
Range.Value := ArrayData;



 
Amoeba_   (2011-04-09 12:08) [7]


> как вставить вариантый массив

http://www.delphikingdom.com/asp/viewitem.asp?catalogid=1274



Страницы: 1 вся ветка

Текущий архив: 2011.07.17;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.009 c
15-1302074023
Sergey
2011-04-06 11:13
2011.07.17
График на делфи!


15-1301659966
clickmaker
2011-04-01 16:12
2011.07.17
В Гугле открылась отличная вакансия


15-1301468622
eclipse
2011-03-30 11:03
2011.07.17
"Тест драйв" программы


15-1301689794
Юрий
2011-04-02 00:29
2011.07.17
С днем рождения ! 2 апреля 2011 суббота


2-1302452393
mefodiy
2011-04-10 20:19
2011.07.17
Проблема с закрытием формы