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

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

Как скрыть строки в Excel ? [D7, XP]


Страницы:   1 2

AntonUSAnoV ©   (2008-01-11 17:37:00) 

Здравствуйте Мастера!
Ситуация такая : программа генерирует отчёт по шаблону в Excel, в конкретном случае составляется список спортсменов, допустим 10 строчек (в шаблоне) вниз заполнены спец. символами типа (s1, s2, ... s10). При выполнении проги эти символы заменяются с помощью replace на фамилии спортсменов. Собственно как скрыть строки я нашёл - selection.entirerow.hide, но как можно узнать номер строки, на которой заполнение данных закончилось и как правильно выделить (select) эти строки чтобы скрыть. Или может есть какой другой способ скрыть строки ?  
Кстати данные заполняются с помощью цикла: типа

x:=0;
for i:=0 to dbmemo.lines.count do begin
x:=x+1;
selection.replace('s'+inttostr(x),buf) //где buf - строка из МЕМО
------------------------
selection.replace('s'+inttostr(x),buf);
(код примерный)
таким образом данные заполняются столько строк, сколько строк в DBMEMO.


AntonUSAnoV   (2008-01-14 16:52:00) [1]


> [Фатальная ошибка] SaveUnit.pas(20): Internal error: SY576
>
> Что это такое, последнее время задолбало..

это глюг просто ???


Сергей М.   (2008-01-14 08:07:00) [2]

Используй компонент TExcelApplication и не парься.


AntonUSAnoV   (2008-01-13 22:49:00) [3]

Дулфи пишет несовпадение типов! когда пытаюсь к функции find приделать какие-нибудь параметры типа find('text',xlnext, xlpart)///


Сергей М.   (2008-01-13 18:58:00) [4]


>  как сделать чтобы поиск производился на всём листе


Запиши соотв.макрос и посмотри в его тексте, какие параметры при этом должны быть переданы методу Find


AntonUSAnoV   (2008-01-13 14:26:00) [5]

Мне больше  ни кто не ответит?


AntonUSAnoV   (2008-01-12 21:24:00) [6]

[Фатальная ошибка] SaveUnit.pas(20): Internal error: SY576

Что это такое, последнее время задолбало..


AntonUSAnoV   (2008-01-12 21:15:00) [7]

ну тада вот значит:

         e.application.rows.Find('<s'+inttostr(i)+'>');
           r2:=e.selection.row;
       e.activeworkbook.sheets['Список'].rows[r2].hidden:=true;

но как сделать чтобы поиск производился на всём листе, а то у меня ищет только в одной ячейке, на которой стоял курсор во время сохранения шаблона.


Сергей М.   (2008-01-12 21:05:00) [8]


> метод hidden


Это не метод, это свойство. Булево.

Объект.Hidden := True


AntonUSAnoV   (2008-01-12 20:43:00) [9]

В VBA , полученного макросом из Excel, код был примерно такой: selection.entirerow.hidden, в делфе такой код не прокатил ну и я его видоизменил, если так и написать в делфе
e.activeworkbook.sheets['Список'].rows[r2].hidden; то он говорит что метод hidden из класса range завершён неверно...


Сергей М.   (2008-01-12 20:34:00) [10]


>  AntonUSAnoV


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

В выражении ты использовал оператор присваивания, в правой части выражения у тебя фигурирует идентификатор hide. Что это и где-как он у тебя объявлен ?


Сергей М.   (2008-01-12 20:23:00) [11]


> __!ERIX_   (12.01.08 20:09) [23]


Вот из-за таких "удачных придурков", видимо, и было искажено значение сленгового выражения "маздай", и теперь по всему Тырнету им крестят ни в чем не повинную NT-линейку)


> AntonUSAnoV   (12.01.08 20:14) [26]



> я через Excel application даже не пробовал, может легче
> было бы ?


Конечно легче)

На то компоненты и придуманы, чтобы облегчить жизнь программеру


AntonUSAnoV   (2008-01-12 20:14:00) [12]


> __!ERIX_

заведи собственный вопрос, вот тут расселся,
по поводу моей проблемы, да доступ у меня через OLE , но я через Excel application даже не пробовал, может легче было бы ?

А то так приходится всё узнавать на форумах и по VBA справкам (с этим сложно)


engine   (2008-01-12 20:12:00) [13]

> [23] __!ERIX_   (12.01.08 20:09)
> за эту фразу рассценю тебя как неудачного умника(((.гы.

А что ты хотел услышать?
ИМХО самый простой и быстрый способ разобраться


Максимка   (2008-01-12 20:12:00) [14]

>>> __!ERIX_ [23]
>>>В соответствующих справках по VBA для кадого из продуктов в составе Офиса.  - за эту фразу рассценю тебя как неудачного умника(((.гы.
во жжет


__!ERIX_   (2008-01-12 20:09:00) [15]

мда.....
типа умный.......
Но ты не прав!
почитай в инете. если ты не знаешь сам, что называют мастдайным.
>>>В соответствующих справках по VBA для кадого из продуктов в составе Офиса.  - за эту фразу рассценю тебя как неудачного умника(((.гы.


Сергей М.   (2008-01-12 20:04:00) [16]


>  Mасдайного Offic'a


Нет такого.
Есть продукт Microsoft Office.
А "масдаем" принято называть технологическую линейку ОС Win9x.


>  где взять справочник с описанием по коммандам(функциям)


В соответствующих справках по VBA для кадого из продуктов в составе Офиса.


__!ERIX_   (2008-01-12 20:00:00) [17]

Кто-нибудь знает где взять справочник с описанием по коммандам(функциям) Mасдайного Offic'a


Сергей М.   (2008-01-12 20:00:00) [18]


> sniknik ©   (12.01.08 19:38) [16]


Впрочем, судя по [19] ты оказался прав - используется олейвариантный доступ.


> AntonUSAnoV   (12.01.08 19:54) [19]



> ничего не происходит


Значит поиск был неуспешен.


> e.activeworkbook.sheets.item['Список'].rows[r2]:=hide;


А это что за несуразица ?
Ты сам-то понял, что ты здесь понаписал ?


AntonUSAnoV   (2008-01-12 19:54:00) [19]

Делаю так:
       
for i:=1 to 15 do begin
       e.selection.Find('<s'+inttostr(i)+'>');
       r2:=e.selection.row;
       e.activeworkbook.sheets.item['Список'].rows[r2]:=hide;


ничего не происходит , поиск производится только в той ячейке, на которой стоял курсор во время сохранения шаблона... ???


Сергей М.   (2008-01-12 19:42:00) [20]


>  с чего ты взял, что у него TExcelApplication? нормальные
> герои всегда идут в обход


Вряд ли.

В параметрах вызываемой Find у автора действительно бардак, на что компилятор честно отругался. А отругаться он мог только имея прототип.


Страницы:   1 2

Наверх

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