On-line: Pasha, PSP, гостей 0. Всего: 2 [подробнее..]
АвторСообщение



Не зарегистрирован
Зарегистрирован: 01.01.70
ссылка на сообщение  Отправлено: 24.03.09 17:25. Заголовок: вопрос по Excel


Всем, привет !

Выделяю строчку в листе:

oXls:Sheets(OemToAnsi("Лист1")):Range("B"+ltrim(str(nn+st))+":F"+ltrim(str(nn+st)) ):Select()

а вот копирование выделенного в clipboard дает ошибку - неправильно указана принадлежность объекта Selection()

oXls:Sheets(OemToAnsi("Лист1")):Selection():Copy() ??




Спасибо: 0 
Цитата Ответить
Ответов - 46 , стр: 1 2 3 All [только новые]





Не зарегистрирован
Зарегистрирован: 01.01.70
ссылка на сообщение  Отправлено: 24.03.09 18:24. Заголовок: вопрос с Selection ..


вопрос с Selection вроде решил, но теперь надо вставить скопированное в объект Excel открытый как ActiveX

что-то типа oAx:Sheets(OemToAnsi("Лист1")):Range("A1"):Select()
Sheets в данном случае не катит, надо через OleInvoke(), но как ?



Спасибо: 0 
Цитата Ответить



Не зарегистрирован
Зарегистрирован: 01.01.70
ссылка на сообщение  Отправлено: 25.03.09 19:32. Заголовок: oOwc = TActiveX():..



oOwc = TActiveX():New( oWnd, "OWC11.Spreadsheet" )
hSheet = oOwc:GetProp( "ActiveSheet" )

в общем все свелось к тому, чтобы получить Range как объект, но это не выходит
если так OleGetProperty(hSheet, "Range") - получаю неопределенное значение
если так OleGetProperty(hSheet, "Range('A1')") - получаю некое число

Спасибо: 0 
Цитата Ответить



Пост N: 108
Зарегистрирован: 12.06.06
ссылка на сообщение  Отправлено: 21.03.10 10:51. Заголовок: ...вопрос с selection


Напишите , пожалуйста, как решился вопрос с Selection
oXls:Sheets(OemToAnsi("Лист1")):Selection():Copy() ??

Спасибо: 0 
ПрофильЦитата Ответить
Администратор




Пост N: 1347
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 22.03.10 09:45. Заголовок: На первый взгляд, на..


На первый взгляд, написано правильно
Можно развернуть оператор:

oBook := oXls:ActiveWorkBook
oSelect := oXls:Selection
oSheet := oBook:Sheets(1)
oRange := oSheet:Range(oSheet:Rows(n1), oSheet:Rows(n2))
oRange:Select()
oSelect:Copy()


Спасибо: 0 
ПрофильЦитата Ответить
Администратор




Пост N: 1348
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 22.03.10 10:08. Заголовок: Причиной ошибки може..


Причиной ошибки может быть то, что какие-то строки объеденены с другими, и запрошенный диапазон невозможно выделить

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 109
Зарегистрирован: 12.06.06
ссылка на сообщение  Отправлено: 22.03.10 10:10. Заголовок: Спасибо ! Теперь с к..


Спасибо ! Теперь с копированием ошибок нет. Но и от Paste() не видно никаких
действий. Иначе - в указанном месте вставка не производится, потому что копируется
ячейка, которая последней редактировалась в Excelе и она же и вставляется

Спасибо: 0 
ПрофильЦитата Ответить
Администратор




Пост N: 1349
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 22.03.10 10:33. Заголовок: Надо переместиться в..


Надо переместиться в нужную ячейку, и затем выдать Paste

Переместиться можно разными способами. К примеру, по имени ячейки
oXls:Goto(cName)

или выделить область по select

затем выдать вставку

oSheet:Paste()


Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 36
Зарегистрирован: 23.02.06
ссылка на сообщение  Отправлено: 17.05.10 09:10. Заголовок: oExcel:WorkBooks:Open(cFile) - Excel.Application/264 Unknown error: WORKBOOKS


Кто знает как побороть:

oExcel:WorkBooks:Open(cFile)

// bla bla bla ok

oExcel:WorkBooks:Close()
oExcel:Quit()

oExcel:WorkBooks:Open(cFile1) - с неопределенной вероятностью выдает ошибку - Excel.Application/264 Unknown error: WORKBOOKS

То есть первый файл открываю - всегда ок, закрываю, открываю следующий - иногда ок, иногда сабж.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 912
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 17.05.10 11:52. Заголовок: Маленький самодостат..


Маленький самодостаточный пример помог бы вам больше, чем проведение соц.опроса на тему "А кто знает..?".

Если вы вызываете
Excel:WorkBooks:Open(cFile1) сразу после oExcel:Quit(), то почему вас удивляет возникновение ошибок?
Во-вторых метод Close имеет параметры SaveChanges, Filename, RouteWorkbook
и для того, чтобы программа не зависила от поведения пользователя я писал бы так
oExcel:WorkBooks(cFile):Close(TRUE,, FALSE)

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 34
Зарегистрирован: 17.06.10
ссылка на сообщение  Отправлено: 29.09.10 18:03. Заголовок: В буфер скопирован б..


В буфер скопирован большой фрагмент таблицы. При закрытии книги через oExcel:Workbooks(cFil):Close () появляется запрос об обработке буфера. Как можно запретить убрать этого запроса ?

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 39
Зарегистрирован: 14.03.10
ссылка на сообщение  Отправлено: 08.10.10 14:04. Заголовок: Перед закрытием поме..


Перед закрытием помести в буфер что-нибудь маленькое.

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 45
Зарегистрирован: 09.09.11
ссылка на сообщение  Отправлено: 03.11.11 14:42. Заголовок: Петр,можно по подроб..


Петр,можно по подробнее описать ситацию[pre2]`
Если вы вызываете
Excel:WorkBooks:Open(cFile1) сразу после oExcel:Quit(), то почему вас удивляет возникновение ошибок?

Что надо сделать, или какую функцию, команду надо вставить между oExcel:Quit() и WorkBooks:Open(cFile1)?

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 46
Зарегистрирован: 09.09.11
ссылка на сообщение  Отправлено: 24.11.11 14:51. Заголовок: Добрый день, как по ..


Добрый день, как по имени листа определить номер листа? Если в файле Excel изменить порядок листов, то из своей программы я немогу вставить буфер обмена на НУЖНЫЙ лист. Фрагмент кода

oSheet_S:=oBook_S :Sheets(22):Select()
oBook_S :=oExcel_S:ActiveWorkBook
oAs_S :=oExcel_S:ActiveSheet()
oSheet_S:=oBook_S :Sheets(22)
oAs_S :Cells(88,3):Select()
oSheet_S:Paste()
Hb_GtInfo(HB_GTI_CLIPBOARDDATA, "")


Ксати предыдущий пост так же актуален.



Спасибо: 0 
ПрофильЦитата Ответить
Администратор




Пост N: 2165
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 25.11.11 10:07. Заголовок: По предыдущуму посту..


По предыдущуму посту. После oExcel:Quit() все надо делать сначала: инициализировать oExcel. и так далее. Это Петр имел в виду полтора года назад.
Насчет имени листа: надо сделать цикл по коллекции Sheets и найти интересующее имя.

Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 40
Зарегистрирован: 23.02.06
ссылка на сообщение  Отправлено: 25.11.11 12:19. Заголовок: Кто знает, где вообщ..


Кто знает, где вообще можно почитать о работе с сабжем из харбора? В поставляемом примере дается только самый примитив, а если надо там изменить ширину колонки/высоту строки, вставить формулу, нарисовать рамку итд?

Спасибо: 0 
ПрофильЦитата Ответить
Администратор




Пост N: 2166
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 25.11.11 12:28. Заголовок: Харбор предоставляет..


Харбор предоставляет механизм доступа к ole-обьектам и не более. А все остальное отностится непосредственно к Excel. Его и надо изучать. Можно просто почитать help к Excel VBA: vbaxl10.chm, или как он там сейчас называется. Правда, там все не по русски

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 252
Зарегистрирован: 06.02.07
ссылка на сообщение  Отправлено: 25.11.11 14:05. Заголовок: Snake , вот тут на э..


Snake , вот тут на этом форуме, к примеру, кое-что (http://clipper.borda.ru/?1-4-0-00000259-000-0-0-1274882100) или (http://clipper.borda.ru/?1-1-0-00000136-000-20-0#014) (а еще - "поиск"->"excel")

Спасибо: 1 
ПрофильЦитата Ответить





Пост N: 41
Зарегистрирован: 23.02.06
ссылка на сообщение  Отправлено: 17.04.12 10:53. Заголовок: Спасибо! А как скопи..


Спасибо!
А как скопипастить ячейку или группу ячеек? пытаюсь так:
oAS:Cells( 2, 1 ):Value := 'Test'
oAS:Cells(2,1):Select()
oAS:Selection:Copy()
oAS:Cells(3,3):Select()
oAS:Paste()

- выдает ошибку на Paste()

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 118
Зарегистрирован: 17.06.10
ссылка на сообщение  Отправлено: 17.04.12 14:27. Заголовок: Вот так попробуй (по..


Вот так попробуй (по край мере с Range проходит)

oAS:Cells(2,1):Copy()
oAS:Cells(3,3):Select()
oAS:Paste()


Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 42
Зарегистрирован: 23.02.06
ссылка на сообщение  Отправлено: 18.04.12 10:25. Заголовок: Что-то не проходит н..


Что-то не проходит ни так, ни с RANGE:

oAS:RANGE(oAS:Cells(2,1),oAS:Cells(2,1)) :Copy()
oAS:RANGE(oAS:Cells(3,3), oAS:Cells(3,3)) :Select()
oAS:Paste()

...а еще может кто подскажет как цвет задается?
для шрифта задал наобум -

oAS:Cells( 2, 1 ):Font:Color := 85

- получился какой-то красноватый; а как вычислить нужный?
- и как задать цвет фона?

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 46 , стр: 1 2 3 All [только новые]
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 133
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет