Страница 1 из 1

Delphi и Excel активная ячейка...

Добавлено: 24 авг 2006, 11:13
Dr_Grizzly
Всем привет!!! Такая вот задачка, в дельфе есть какое-то значение которое нужно вставить в активный excel документ в активную книгу и страницу, в выбранную ячейку пользователем. Т.е. перед запуском проги уже открыт эксель, и стоит курсор на какой-то ячейки, как теперь узнать в дельфе куда нужно вставить значение???
Я накидал ручной тип ввода:

Код: Выделить всё

var
  Form1: TForm1;
  Ex:Variant;
....
procedure TForm1.Excel1Click(Sender: TObject);
begin
Ex:=CreateOleObject('Excel.Application');
If vartype(Ex)=varDispatch then Ex.visible:=true;
end;
...
procedure TForm1.Excel2Click(Sender: TObject);
var
y,x:String;
begin
If vartype(ex)=varDispatch then
 begin
 y:=InputBox('Введите номер строки','Строка','1');
 x:=InputBox('Введите номер столбца','Столбец','1');
 Ex.Workbooks[1].Worksheets[1].Cells[StrToInt(y),StrToInt(x)]:=Edit2.Text;
 end;
end;
причем по нажатию первой кнопки нужно после появления окна экселя открыть нужный документ, потом только высчитать строку и столбец и потом только она вставит значение. А я хочу чтоб усе было на автомате :) Помогите плииззз :)

Добавлено: 29 авг 2006, 15:50
Eugie
Должно работать что-то вроде Ex.ActiveCell := Edit2.Text
Если нет, см. Help по VBA.

Добавлено: 02 сен 2006, 11:38
YurikGL
Нужно запустить запись макроса, сделать действия, которые ты хочешь чтобы делались автоматически, завершить запись макроса, посмотреть как он выглядит.
Код VBA переводится на Delphi достаточно легко.

Т.е. перед запуском проги уже открыт эксель, и стоит курсор на какой-то ячейки, как теперь узнать в дельфе куда нужно вставить значение???
Тогда цепляться нужно так
Ex:=GetActiveOleObject('Excel.Application');// цепляемся к уже открытому Excel-ю
А потом
Ex.ActiveCell.FormulaR1C1:='asdf'
или что-то типа
Ex.ActiveCell.Formula:='asdf'

Добавлено: 05 сен 2006, 05:58
Dr_Grizzly
Отлично! Я так и подумал, но что-то не попробовал...