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

Вниз

Скопировать строки в Excel   Найти похожие ветки 

 
Neket   (2007-04-25 11:50) [0]

Копирую строки Row :-) из одной книги в другую таким образом:


Var
Excel,XL,XLApp,Nah:Variant;
begin
Excel:= CreateOleObject("Excel.Application");
XL:=Excel.Workbooks.Open(FName);// Открываю существующий файл

XLApp:=CreateOleObject("Excel.Application");
XLNah:=XLApp.Workbooks.Add();// Формирую новый
//------
XLApp.Workbooks[1].WorkSheets[1].Range[XLApp.Workbooks[1].WorkSheets[1].Cells.It em[k, 1], XLApp.Workbooks[1].WorkSheets[1].Cells.Item[k,EmptyParam]].copy(Excel.Workbooks[ 1].WorkSheets[2].Range[Excel.Workbooks[1].WorkSheets[2].Cells.Item[k, 1], Excel.Workbooks[1].WorkSheets[2].Cells.Item[k,EmptyParam]]);


Вылетает ошибка - "Метод Copy из Класса Range завершо неверно"


 
Neket   (2007-04-25 11:56) [1]

Сори.....
Вот сдесь так :
Var
Excel,XL,XLApp,XLNah:Variant


 
iXT ©   (2007-04-25 12:09) [2]

Здается мне OleVariant


 
umbra ©   (2007-04-25 12:09) [3]

зачем два экселя?


 
iXT ©   (2007-04-25 12:16) [4]

> зачем два экселя?

Тоже подумал. Открыл два файлика (xls). Глядь в диспетчер. И там два EXCEL. Ну фиг с ними. Может так ему лучше :). Но это же не смертельно (если тачка позволяет, конечно). Он жалуется на COPY


 
umbra ©   (2007-04-25 12:26) [5]


> XLApp.Workbooks[1].WorkSheets[1].Cells.Item[k,EmptyParam]

это что за EmptyParam?


 
Neket   (2007-04-25 12:31) [6]

Это чтобы всю строку скопировать...
Если поставить к пример 100 то ситуация анологична


 
Neket   (2007-04-25 12:36) [7]

Пытаюсь также и через БО сделать
Var
R:OLEVariant;
..........
R:=XL.WorkSheets[1].Range[XL.WorkSheets[1].Cells.Item[k, 1], XL.WorkSheets[1].Cells.Item[k, 245]];
R.Copy(EmptyParam);
XLApp2.Paste(XLApp2.Range[XLApp2.Cells.Item[k, 1],EmptyParam],EmptyParam);


Всеравно вылетает ошибка когда пытаюсь вставить.
Может что-то неправельно делаю?


 
umbra ©   (2007-04-25 12:38) [8]

кажется мне, что такой метод копирования работает в пределах одного Excel.Application


 
iXT ©   (2007-04-25 12:40) [9]

Сделай это сперва в VB(В Excel), там и справку найти можно. А потом уже через OLE


 
iXT ©   (2007-04-25 12:43) [10]

> [8] umbra ©   (25.04.07 12:38)

Не должен. Он же в буфер копирует.


 
iXT ©   (2007-04-25 12:46) [11]

Вот мне кажется:
1. что перед Paste надо выделить куда вставляешь
2. Paste оформлен не верно

3. Выкинуть XLApp2


 
umbra ©   (2007-04-25 12:48) [12]


> Не должен. Он же в буфер копирует.
>

в буфер обмена он копирует, если не указать диапазона назначения. а в сабже он указан.


 
Neket   (2007-04-25 12:50) [13]

2 Umbra: А если я это оформлю в одно Excel
Т.е. Как то так:
Var
Excel,XL,XLApp,Nah:Variant;
begin
XLApp:=CreateOleObject("Excel.Application");
XL:=XLApp.Workbooks.Open(FName);// Открываю существующий файл
XLNah:=XLApp.Workbooks.Add();// Формирую новый
//------


Так как тогда нада переписать
XLApp.Workbooks[1].WorkSheets[1].Range[XLApp.Workbooks[1].WorkSheets[1].Ce lls.It em[k, 1], XLApp.Workbooks[1].WorkSheets[1].Cells.Item[k,EmptyParam]].copy(Excel.Workbooks[  1].WorkSheets[2].Range[Excel.Workbooks[1].WorkSheets[2].Cells.Item[k, 1], Excel.Workbooks[1].WorkSheets[2].Cells.Item[k,EmptyParam]]); ???????????

2 iXT: :-))) А откуда?


 
umbra ©   (2007-04-25 12:58) [14]

srcRange := XL.Worksheets[1].Cells.Rows[k];
dstRange := XLNah.Worksheets[1].Cells.Rows[k];
dstRange.Value := srcRange.Value;


 
Neket   (2007-04-25 13:00) [15]

dstRange.Value := srcRange.Value;
Это если текст.... А если все... И Форматы тоже?


 
iXT ©   (2007-04-25 13:17) [16]

> А откуда?

После
> R.Copy(EmptyParam);
Я полагаю что R должен всетаки уйти в буфер

[12] umbra ©   (25.04.07 12:48)
в буфер обмена он копирует, если не указать диапазона назначения. а в сабже он указан.


> R:=XL.WorkSheets[1].Range[XL.WorkSheets[1].Cells.Item[k, 1], XL.WorkSheets[1].Cells.Item[k, 245]];
> R.Copy(EmptyParam);

???


 
umbra ©   (2007-04-25 13:29) [17]


> Это если текст.... А если все... И Форматы тоже?

srcRange.Copy(dstRange);

При этом желательно, чтобы лист с исходным диапазоном был активным. По идее это не обязательно, но я несколько раз натыкался на эти грабли.


 
umbra ©   (2007-04-25 13:32) [18]

2 iXT ©   (25.04.07 13:17) [16]

я не читал эти посты :). Там ошибка из-за неправильного указания диапазона, скорее всего. Указывать для индекса ячейки EmptyParam как-то, по-моему, некузяво.


 
umbra ©   (2007-04-25 13:34) [19]


> R.Copy(EmptyParam);

Если работать с поздним связыванием, то все эти многочисленные EmptyParam вместо необязательных аргументов просто не нужны


 
Neket   (2007-04-25 14:36) [20]

Все... Всем спасибо...
Сделал так...
Var
XL,XLApp,Nah,srcRange, dstRange:Variant;
begin
XLApp:=CreateOleObject("Excel.Application");
XL:=XLApp.Workbooks.Open(FName);// Открываю существующий файл
XLNah:=XLApp.Workbooks.Add();// Формирую новый
..........
srcRange := XL.Worksheets[1].Cells.Rows[k];
dstRange := XLNah.Worksheets[1].Cells.Rows[k];
srcRange.Copy(dstRange);


 
iXT ©   (2007-04-25 14:48) [21]

Почему опять variant?

Undeclared identifier XLNah


 
Neket   (2007-04-25 14:52) [22]

Ааа точно
Var
XL,XLApp,XLNah,srcRange, dstRange:OLEVariant;


Это я случайно...


 
umbra ©   (2007-04-25 14:54) [23]


> variant

variant вполне подходит, а


> Undeclared identifier XLNah

означает, что переменная не объявлена с таким именем


 
iXT ©   (2007-04-25 15:06) [24]

> > Undeclared identifier XLNah
>
> означает, что переменная не объявлена с таким именем

Это для меня перевод? :))))))
Это я генерировал сообщения компилятора.



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

Форум: "Начинающим";
Текущий архив: 2007.05.13;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.5 MB
Время: 0.04 c
2-1176982089
vitv
2007-04-19 15:28
2007.05.13
Передача значения в главную форму с формы, вызванной из DLL.


3-1171954380
D@Nger
2007-02-20 09:53
2007.05.13
Pdoxusrs.net и как с ним работать


5-1153477310
Andrik
2006-07-21 14:21
2007.05.13
Как получить указатель на экземпляр класса из егоже метода


15-1176027920
Alx2
2007-04-08 14:25
2007.05.13
Про пасху и холодное горение


15-1175676785
Layner
2007-04-04 12:53
2007.05.13
Кто пользуется альтернативными прогр. мгн. сообщений





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