Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

опять Excel... поиск по листам? [D7, WinXP]


misha123 ©   (2004-09-22 20:46:00) 

Знаю, что Excel'ем все уже замучались :), но вроде мой вопрос нигде не освещался:

нужно сделать поиск в Excel файле. Информация разбита по листам в одном файле. Как-то нужно вызвать функцию "Поиск по всем листам в книге" - в Excel'е так и называется - "Найти и заменить".

Записать-прочитать данные - не проблема, а вот для поиска макрос не поможет.

Работаю, как:

ex: OleVariant;

ex:=CreateOleObject('Excel.Application');


Спасибо.


misha123   (2004-09-28 13:01:00) [1]

я все это уже смотрел - толкового ничего нет (вернее функцию саму нашел, но непонятно какие параметры ей надобно передавать - пробовал те, которые были в макросе, не помогло...).
Сделал через запуск макроса (поиск) из своей программки, но проблема новая - если ничего не найдено - у бейсика возникает эксепшион и останов, соответственно я тоже валюсь...
Что здесь можно сделать? (например, как сказать бейсику чтобы не стопил процесс, а просто говорил через какую-нибудь переменную - не нашел)


YurikGL   (2004-09-22 21:41:00) [2]


> misha123   (22.09.04 20:46)  

Кроме написания макросов есть еще один способ получения синтаксиса нужных функций.

Например, нам надо переименовать лист макрос, если я не ошибаюсь, как раз

>    Sheets("Ëèñò1").Select
>    Sheets("Ëèñò1").Name = "123"

В этом случае, кидаем на форму компонент ExcelSheet, набираем в любой процедуре ExcelSheet. и нажимаем ctrl+пробел. Потом там внимательно изучаем появившийся список. Там есть простые функции которых с помощью макроса никогда не получишь.

Потом те же самые функции и свойства можно использовать в ex: OleVariant;


misha123   (2004-09-22 21:22:00) [3]

Да... еще есть что добавить :)
Для первого вопроса записал макрос:

   Range("B18").Select
   ActiveCell.FormulaR1C1 = "1234"
   Range("E29").Select
   Cells.Find(What:="123", After:=ActiveCell, LookIn:=xlFormulas, LookAt:= _
       xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False _
       , SearchFormat:=False).Activate

Здесь непонятно как вызвать из delphi cells.find(....).activate

Второй вопрос: нужно удалять-добавлять-вставлять новые строки или столбцы.

Макрос прилагается:
   Rows("11:11").Select
   Selection.Insert Shift:=xlDown
   Rows("15:15").Select
   Selection.Delete Shift:=xlUp
   Sheets("Ëèñò1").Select
   Sheets("Ëèñò1").Name = "123"
   Range("C12").Select

Надеюсь, что бить никто не будет :)


Наверх

Титульная страница Поиск, карта сайта Написать письмо