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

Вниз

Добавить новый лист в EXCEL   Найти похожие ветки 

 
Fishka   (2002-09-30 12:06) [0]

Проверяю, запущено или нет приложение EXCEL. Если нет, то пишу так:
MSExcel := CreateOleObject("Excel.Application");
Если запущено, то необходимо добавить лист.Макрос выглядит так:
Sheets.Add
Все, что пробовалось мною, при запуске вылетело с ошибкой.
А как нужно написать в программе? Как обратиться к переменной MSEXCEL типа Variant?


 
3JIA9I CyKA   (2002-09-30 12:32) [1]

Что типа этого. Проверять и не думал. Если сразу заработает, то это случайно.

var
MSEXCEL, WB, WS : Variant;
begin
MSEXCEL := CreateOleObject("Excel.Application");
WB := MSEXCEL.Workbooks.Add;
WS := WB.Worksheets[1];
end;


 
Fishka   (2002-09-30 15:54) [2]

>3JIA9I CyKA © (30.09.02 12:32)
var MSEXCEL, WB, WS : Variant;
begin
> MSEXCEL := CreateOleObject("Excel.Application");
Так я пишу, если EXCEL не запущен.
Но мне не нужен еще один EXCEL. Вопрос в том, как не создавая CreateOleObject, выполнить
MSEXCEL.Workbooks.Add;
а то программа при выполнении выдает на этой строке ошибку.



 
Prooksius   (2002-09-30 16:04) [3]

Нечто наподобие с Word-ом:

var
MsWord: Variant;
...
try
// Если Word уже запущен
MsWord := GetActiveOleObject("Word.Application");
// Взять ссылку на запущенный OLE объект
except
try
// Word не запущен, запустить
MsWord := CreateOleObject("Word.Application");
// Создать ссылку на зарегистрированный OLE объект
MsWord.Visible := True;
except
ShowMessage("Не могу запустить Microsoft Word");
Exit;
end;
end;
end;


 
Fishka   (2002-10-01 09:46) [4]

>Prooksius © (30.09.02 16:04)
Спасибо за GetActiveOleObject.

Мне, наверное, нужен номер книги и номер листа (i,j), чтобы добавить в книгу с номером i новый лист, который будет иметь номер j. (Для новой книги i=1, j=1).

MSExcel.Workbooks[i].Sheets.Add;
MSExcel.Workbooks[i].WorkSheets[j].Select;


Как найти i,j? Или это вообще все делается по-другому?


 
3JIA9I CyKA   (2002-10-01 11:30) [5]

Найди все. Выбери по названию.
Ку?


 
Fishka   (2002-10-01 12:20) [6]

А поподробнее можно? Пожалуйста.


 
3JIA9I CyKA   (2002-10-01 12:43) [7]

У коллекций Workbooks и Worksheets есть Count.
У Workbook и Worksheet есть Name.
Этого мало?


 
Fishka   (2002-10-01 16:20) [8]

>3JIA9I CyKA © (01.10.02 12:43)
Спасибо.
Но чего-то я не догоняю.
Пишу так:
MsExcel := GetActiveOleObject("Excel.Application");
count_books:=MSExcel.Workbooks.Count;
MSExcel.Workbooks[count_books].Sheets.Add;
count_sheets:=MSExcel.WorkSheets.Count;
MSExcel.Workbooks[count_books].WorkSheets[count_sheets].Select;

И далее заполняю ячейки. Новый лист в книгу добавляется, но почему-то всегда заполняются ячейки 3-го листа, хотя последний добавленный лист в книге называется "лист6".
В чем мои ошибки?


 
max2057   (2002-10-01 16:28) [9]

function PrepareExcel(ListName :string): boolean;
begin
result := true ;
try
try
Excel:= GetActiveOleObject("Excel.Application");
except
try
Excel := CreateOleObject("Excel.Application");
except
ShowMessage("


 
3JIA9I CyKA   (2002-10-01 16:34) [10]

2Fishka
Называться он может хоть "ЖоПа".


 
Fishka   (2002-10-01 16:40) [11]

>3JIA9I CyKA © (01.10.02 16:34)
Я вообще-то не про название говорю, а о том, почему всегда заполняются ячейки одного и того же листа, а не последнего добавленного.


 
3JIA9I CyKA   (2002-10-01 16:51) [12]

Ку

var ws : variant;
...
ws := MSExcel.Workbooks[count_books].Sheets.Add;
ws.Cells[1,1].Value := "жОпА";



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

Форум: "Базы";
Текущий архив: 2002.10.24;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.007 c
3-78311
Sayan
2002-10-04 08:55
2002.10.24
Нафигатор по базе


6-78577
vitnt2000
2002-08-16 10:58
2002.10.24
Как программно поменять IP адрес?


1-78427
bliznuk
2002-10-15 17:29
2002.10.24
Библиотека RxCtrls.dcu


1-78468
Groove
2002-10-12 19:35
2002.10.24
А на Cpp?


1-78505
Alex_12
2002-10-13 17:10
2002.10.24
Про StringGrid





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский