![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как скрыть строки в Excel ? [D7, XP]
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 у автора действительно бардак, на что компилятор честно отругался. А отругаться он мог только имея прототип.