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

Вниз

TOleContainer и Excel   Найти похожие ветки 

 
Deltas ©   (2012-03-07 13:33) [0]

Можно ли сделать так, чтобы внутри котейнера отрисовывались ячейки листа не с позиции А1, а с другой... например с B2. То есть что-то вроде свойств TopRow, LeftColumn?


 
sniknik ©   (2012-03-07 13:51) [1]

Sub Макрос1()
"
" Макрос1 Макрос
" Макрос записан 07.03.2012
"

"
   Selection.EntireRow.Hidden = True
   Selection.EntireColumn.Hidden = True
End Sub


 
Deltas ©   (2012-03-07 21:37) [2]

Спасибо.


 
Deltas ©   (2012-03-11 16:58) [3]

А каким образом можно прокрутить область листа, открытого в Microsoft Excel, т.е. чтобы верхняя левая ячейка была b2, например?


 
sniknik ©   (2012-03-11 17:01) [4]

без разницы, что угодно делается одинаково... - записываешь макрос, смотришь код.


 
Deltas ©   (2012-03-11 17:18) [5]

Sub Макрос1()
"
" Макрос1 Макрос
"

"
   ActiveWindow.SmallScroll ToRight:=1
   ActiveWindow.SmallScroll Down:=1
End Sub

Пытаюсь сделать то же самое из Delphi:
В OleContainer1 (TOleContainer) создаю объект класса "Excel.Sheet.8".

procedure TForm1.Button1Click(Sender: TObject);
var
 wb: ExcelWorkbook;
 ws: ExcelWorksheet;
 v: Variant;
begin
 OleContainer1.Run;
 if Supports(OleContainer1.OleObjectInterface, ExcelWorkbook, wb) then
   if (wb.Sheets.Count > 0) and Supports(wb.Sheets[1], ExcelWorksheet, ws) then
 begin
   v := ws;
   v.ActiveWindow.SmallScroll.ToRight := 1;
 end;
end;


При нажатии Button1 получаю ошибку "Method "ActiveWindow" not supported by automation object".


 
Deltas ©   (2012-03-11 17:29) [6]

procedure TForm1.Button1Click(Sender: TObject);
var
 wb: ExcelWorkbook;
 ws: ExcelWorksheet;
begin
 if Supports(OleContainer1.OleObjectInterface, ExcelWorkbook, wb) then
   if (wb.Sheets.Count > 0) and Supports(wb.Sheets[1], ExcelWorksheet, ws) then
     ws.Application.ActiveWindow.SmallScroll(1, 0, 0, 0);
end;


Так работает, но только если объект OLE открыт в серверном приложении (MS Office). В противном случае, ActiveWindow имеет значение nil. Хотелось бы крутить таблицу Excel туда-сюда без открытия листа в серверном приложении. Например, значения ячеек я ведь могу записать без открытия объекта в серверном приложении.



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

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

Наверх




Память: 0.48 MB
Время: 0.165 c
15-1412782525
alexdn
2014-10-08 19:35
2015.09.10
Вот тоже просьба!


15-1420308168
Maksim_76
2015-01-03 21:02
2015.09.10
Нет соединения с Интернетом после установки Др.Веб


15-1415633204
megavoid
2014-11-10 18:26
2015.09.10
Телефон на андроиде сам лазит в мобильную сеть


15-1417575009
bems
2014-12-03 05:50
2015.09.10
Ночные странности


15-1415898451
полвторого
2014-11-13 20:07
2015.09.10
Ega23, а я песню Вам нашёл!