Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2011.07.17;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.004 c
1-1259225003
Циркуль
2009-11-26 11:43
2011.07.17
Непредсказуемый порядок обхода контролов


2-1302261977
Savek
2011-04-08 15:26
2011.07.17
как вставить формул в эксель?


6-1239951140
Mulber
2009-04-17 10:52
2011.07.17
Как отслеживать траффик (протокол SMTP)?


2-1301819904
Leon-Z
2011-04-03 12:38
2011.07.17
ООП. Как сделать правильнее ???


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





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский