|
Модераторы: MetalFan |
|
sgentstuff |
|
|||
Шустрый Профиль Группа: Участник Сообщений: 116 Регистрация: 13.9.2005 Репутация: нет Всего: 1 |
как организовать цикл до конца строк?
--------------------
Тот, кто ищет миллионы, весьма редко их находит, но тот, кто их не ищет, не находит никогда. |
|||
|
||||
Albinos_x |
|
|||
Evil Skynet Профиль Группа: Комодератор Сообщений: 3288 Регистрация: 28.5.2004 Где: X-6120400 Y-1 4624650 Репутация: 15 Всего: 108 |
-------------------- "Кто владеет информацией, тот владеет миром" Уинстон Черчилль |
|||
|
||||
sgentstuff |
|
|||
Шустрый Профиль Группа: Участник Сообщений: 116 Регистрация: 13.9.2005 Репутация: нет Всего: 1 |
там про word есть но про excel я не нашел
--------------------
Тот, кто ищет миллионы, весьма редко их находит, но тот, кто их не ищет, не находит никогда. |
|||
|
||||
Albinos_x |
|
|||
Evil Skynet Профиль Группа: Комодератор Сообщений: 3288 Регистрация: 28.5.2004 Где: X-6120400 Y-1 4624650 Репутация: 15 Всего: 108 |
плохо смотрел...
Добавлено @ 12:41 там аж 2 варианта:
Добавлено @ 12:42 и пример ещё к тому же есть... -------------------- "Кто владеет информацией, тот владеет миром" Уинстон Черчилль |
|||
|
||||
Akella |
|
|||
Творец Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 2 Всего: 329 |
поищи по форуму, я выкладывал примеры работы с Excel`ем |
|||
|
||||
sgentstuff |
|
|||
Шустрый Профиль Группа: Участник Сообщений: 116 Регистрация: 13.9.2005 Репутация: нет Всего: 1 |
мне нужно для нужной книги для нужного листа узнать кол-во строк
например вот так:
но так не работает! --------------------
Тот, кто ищет миллионы, весьма редко их находит, но тот, кто их не ищет, не находит никогда. |
|||
|
||||
Albinos_x |
|
|||
Evil Skynet Профиль Группа: Комодератор Сообщений: 3288 Регистрация: 28.5.2004 Где: X-6120400 Y-1 4624650 Репутация: 15 Всего: 108 |
В чём это выражается?
-------------------- "Кто владеет информацией, тот владеет миром" Уинстон Черчилль |
|||
|
||||
sgentstuff |
|
|||
Шустрый Профиль Группа: Участник Сообщений: 116 Регистрация: 13.9.2005 Репутация: нет Всего: 1 |
Я не испоьзую компоненту, а просто через ОЛЕ, как правильно записать получение количества строк?
на эту запись он выдает такую ошибку: EOleSysError with message 'Ivalid number of parameters' --------------------
Тот, кто ищет миллионы, весьма редко их находит, но тот, кто их не ищет, не находит никогда. |
|||
|
||||
Albinos_x |
|
|||
Evil Skynet Профиль Группа: Комодератор Сообщений: 3288 Регистрация: 28.5.2004 Где: X-6120400 Y-1 4624650 Репутация: 15 Всего: 108 |
попробуй вот так:
Что за [p+1] ? -------------------- "Кто владеет информацией, тот владеет миром" Уинстон Черчилль |
|||
|
||||
sgentstuff |
|
|||
Шустрый Профиль Группа: Участник Сообщений: 116 Регистрация: 13.9.2005 Репутация: нет Всего: 1 |
с
тоже самое p+1 - это просто номер книги, в других местах с p+1 все нормально, можешь у себя проверить как этот код работает, но только без компоненты ExcelAplication --------------------
Тот, кто ищет миллионы, весьма редко их находит, но тот, кто их не ищет, не находит никогда. |
|||
|
||||
Albinos_x |
|
||||
Evil Skynet Профиль Группа: Комодератор Сообщений: 3288 Регистрация: 28.5.2004 Где: X-6120400 Y-1 4624650 Репутация: 15 Всего: 108 |
попробуй так:
если не прокатит,то делай стандартным способом:
WorkSheet : OleVariant; у последнего только один недостаток: если на странице стоит защита, то будет вылетать ошибка... -------------------- "Кто владеет информацией, тот владеет миром" Уинстон Черчилль |
||||
|
|||||
sgentstuff |
|
|||
Шустрый Профиль Группа: Участник Сообщений: 116 Регистрация: 13.9.2005 Репутация: нет Всего: 1 |
ура, это сработало, но к сожалению работает только если строки идут подподряд и между ними нету пропуска
а если вот так ф1 ф2 ф3 ф4 ф5 ф6 ф1 ф2 ф3 ф4 ф5 ф6 ф1 ф2 ф3 ф4 ф5 ф6 ф1 ф2 ф3 ф4 ф5 ф6 ф1 ф2 ф3 ф4 ф5 ф6 то ответ будет 3 строки а не 6(вкл и пустую), как подсчитать количество, если есть пропуски? --------------------
Тот, кто ищет миллионы, весьма редко их находит, но тот, кто их не ищет, не находит никогда. |
|||
|
||||
sgentstuff |
|
|||
Шустрый Профиль Группа: Участник Сообщений: 116 Регистрация: 13.9.2005 Репутация: нет Всего: 1 |
у меня много Excel файлов, в каждом не менее 30000 строк, перед обработкой каждогго файла мне нужно узнать количество строк чтобы знать до куда запускать цикл, но попадаются и пустые строки, даже не знаю что делать, может это как-то по другому можно сделать? нужна помощь!
--------------------
Тот, кто ищет миллионы, весьма редко их находит, но тот, кто их не ищет, не находит никогда. |
|||
|
||||
Albinos_x |
|
|||
Evil Skynet Профиль Группа: Комодератор Сообщений: 3288 Регистрация: 28.5.2004 Где: X-6120400 Y-1 4624650 Репутация: 15 Всего: 108 |
сделай вторым способом...
-------------------- "Кто владеет информацией, тот владеет миром" Уинстон Черчилль |
|||
|
||||
sgentstuff |
|
|||
Шустрый Профиль Группа: Участник Сообщений: 116 Регистрация: 13.9.2005 Репутация: нет Всего: 1 |
вторым способом попробывал пишет
метод Activate из класса Range завершен не верно в чем загвоздка? --------------------
Тот, кто ищет миллионы, весьма редко их находит, но тот, кто их не ищет, не находит никогда. |
|||
|
||||
sgentstuff |
|
|||
Шустрый Профиль Группа: Участник Сообщений: 116 Регистрация: 13.9.2005 Репутация: нет Всего: 1 |
у меня excel 2000 может из-за этого?
--------------------
Тот, кто ищет миллионы, весьма редко их находит, но тот, кто их не ищет, не находит никогда. |
|||
|
||||
Albinos_x |
|
|||
Evil Skynet Профиль Группа: Комодератор Сообщений: 3288 Регистрация: 28.5.2004 Где: X-6120400 Y-1 4624650 Репутация: 15 Всего: 108 |
нет не из-за этого... если посмотреть, то второй код применяется довольно давно и успешно... и если будешь искать примеры по инету, то почти везде найдёшь именно второй способ...
а ошибка возможно в строчках позже... на какой строчке ошибка вылезает? -------------------- "Кто владеет информацией, тот владеет миром" Уинстон Черчилль |
|||
|
||||
sgentstuff |
|
|||
Шустрый Профиль Группа: Участник Сообщений: 116 Регистрация: 13.9.2005 Репутация: нет Всего: 1 |
ошибка именно на этой строке:
WorkSheet.Cells.SpecialCells(xlCellTypeLastCell, EmptyParam).Activate; --------------------
Тот, кто ищет миллионы, весьма редко их находит, но тот, кто их не ищет, не находит никогда. |
|||
|
||||
Albinos_x |
|
|||
Evil Skynet Профиль Группа: Комодератор Сообщений: 3288 Регистрация: 28.5.2004 Где: X-6120400 Y-1 4624650 Репутация: 15 Всего: 108 |
код в студию...
-------------------- "Кто владеет информацией, тот владеет миром" Уинстон Черчилль |
|||
|
||||
sgentstuff |
|
|||
Шустрый Профиль Группа: Участник Сообщений: 116 Регистрация: 13.9.2005 Репутация: нет Всего: 1 |
var
эта ошибка вылетает если открыты две книги как ы этом примере, если же открыть только одну книгу то все нормально, считает как надо, у меня в программе открыто несколько книг, что делать? Это сообщение отредактировал(а) Girder - 26.3.2007, 10:04 --------------------
Тот, кто ищет миллионы, весьма редко их находит, но тот, кто их не ищет, не находит никогда. |
|||
|
||||
sgentstuff |
|
|||
Шустрый Профиль Группа: Участник Сообщений: 116 Регистрация: 13.9.2005 Репутация: нет Всего: 1 |
ура получилось. просто нужно активировать книгу
Excel.WorkBooks[1].Activate; тогда все работает нормально Albinos_x - спасибо, выручил! --------------------
Тот, кто ищет миллионы, весьма редко их находит, но тот, кто их не ищет, не находит никогда. |
|||
|
||||
Albinos_x |
|
||||
Evil Skynet Профиль Группа: Комодератор Сообщений: 3288 Регистрация: 28.5.2004 Где: X-6120400 Y-1 4624650 Репутация: 15 Всего: 108 |
честно говоря по твоему коду ничего не понятно....
к примеру:
зачем открывать две книги... связь-то у тебя только со второй... ну да ладно... может код не весь...
зато здесь мы возвращаемся к первой книге... тогда зачем вторая (?)... и далее не понятно зачем в цикле четыре раза вычеслять количество строк на одном и том же листе?... -------------------- "Кто владеет информацией, тот владеет миром" Уинстон Черчилль |
||||
|
|||||
Albinos_x |
|
|||
Evil Skynet Профиль Группа: Комодератор Сообщений: 3288 Регистрация: 28.5.2004 Где: X-6120400 Y-1 4624650 Репутация: 15 Всего: 108 |
отсюда кстати и ошибка вылезала...
работал со второй книгой... а число строк на листе пытался получить из первой книги... Это сообщение отредактировал(а) Albinos_x - 14.7.2006, 14:06 -------------------- "Кто владеет информацией, тот владеет миром" Уинстон Черчилль |
|||
|
||||
sgentstuff |
|
|||
Шустрый Профиль Группа: Участник Сообщений: 116 Регистрация: 13.9.2005 Репутация: нет Всего: 1 |
отсюда кстати и ошибка вылезала...
работал со второй книгой... а число строк на листе пытался получить из первой книги... ЭТО ТОЧНО, теперь все понятно! --------------------
Тот, кто ищет миллионы, весьма редко их находит, но тот, кто их не ищет, не находит никогда. |
|||
|
||||
Albinos_x |
|
|||
Evil Skynet Профиль Группа: Комодератор Сообщений: 3288 Регистрация: 28.5.2004 Где: X-6120400 Y-1 4624650 Репутация: 15 Всего: 108 |
Удачи!
-------------------- "Кто владеет информацией, тот владеет миром" Уинстон Черчилль |
|||
|
||||
oleg153 |
|
||||
Новичок Профиль Группа: Участник Сообщений: 34 Регистрация: 1.3.2007 Репутация: нет Всего: нет |
Господа!
Подскажите пожалуйста, все что можно прочитать я перечитал и рад что у всех работает. Но я потратил сутки но не смог добится номера последней заполненной строки на листе Excel. Перепробовал все, но и в delphi7 и delphi 2006 (studio) одна и таже проблемма : компилятор наотрез не понимает xlCellTypeLastCell. И там и там ошибка Undeclired Identifire 'xlCellTypeLastCell'. И все. Процесс умирает. Я не понимаю в чем дело, ЧТО я не так пишу ??? Вот мой код , в таком виде он не работает:
Случайно наткнулся по яндексу на пример где отдельно обьявлялся этот параметр таким образом
Тогда ошибка пропала и все заработало. Получается что если не используем компоненту ExcelApp то это нужно ОБЯЗАТЕЛЬНО делать ? тогда почему об этом никто не упоминает ??? |
||||
|
|||||
Albinos_x |
|
|||
Evil Skynet Профиль Группа: Комодератор Сообщений: 3288 Регистрация: 28.5.2004 Где: X-6120400 Y-1 4624650 Репутация: 15 Всего: 108 |
1. Следовало бы создать отдельную тему.
2. константа - xlCellTypeLastCell объявлена в модуле OfficeXP (/2000/97) 3. Объявлять константу не обязательно, можно и напрямую писать:
4. Excel у всех под рукой (или почти у всех, но у них и такие приложения работать не будут...), в справке по VB можно посмотреть значение любой из этих констант... -------------------- "Кто владеет информацией, тот владеет миром" Уинстон Черчилль |
|||
|
||||
RosemaN |
|
||||||
Новичок Профиль Группа: Участник Сообщений: 19 Регистрация: 4.11.2007 Репутация: нет Всего: нет |
1. в таком варианте пишет "could not convert variant of type OleStr into type Double".
2. думал что переменная max_rows должна быть типа int, ошибка, описанная выше... 3. где можно взять справочник по этим всем функциям и свойствам? |
||||||
|
|||||||
Albinos_x |
|
|||
Evil Skynet Профиль Группа: Комодератор Сообщений: 3288 Регистрация: 28.5.2004 Где: X-6120400 Y-1 4624650 Репутация: 15 Всего: 108 |
код в студию
-------------------- "Кто владеет информацией, тот владеет миром" Уинстон Черчилль |
|||
|
||||
kuzduk |
|
|||
Новичок Профиль Группа: Участник Сообщений: 20 Регистрация: 21.9.2011 Репутация: нет Всего: 2 |
|
|||
|
||||
Правила форума "Delphi: ActiveX/СОМ/CORBA" | |
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Rrader, Girder. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: ActiveX/СОМ/CORBA | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |