Форум: "Начинающим";
Текущий архив: 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.003 c