Страницы: 1
RSS
Группировки. Удалить второй уровень с содержимым.
 
Добрый вечер.  
 
Уважаемые форумчане, подскажите пожалуйста, есть файл несколько тысяч строк в котором есть два уровня группировок. Нужно удалить второй уровень вместе с содержимым. Т.е. было:  
1          2  
животное    
         кот  
         собака  
птица  
         аист  
         пеликан  
 
Должно получиться:  
животное  
птица  
 
Подскажите, пожалуйста, на пальцах как получить такой результат. Большое спасибо!
 
Наверное я не так понял, но у меня удаляется кнопкой Delete. А потом Данные - Разгруппировать.  
Если не помогает - выкладывайте пример.
 
{quote}{login=Serge 007}{date=24.05.2011 11:19}{thema=}{post}Наверное я не так понял, но у меня удаляется кнопкой Delete. А потом Данные - Разгруппировать.  
Если не помогает - выкладывайте пример.{/post}{/quote}  
 
Спасибо за ответ. Да, всё верно, так удаляется. Но дело в том, что около 300 строк первого уровня и около 1000 строк второго уровня. Нужно получить файл в котором просто 300 строк первого уровня. Как-то автоматизированно это можно сделать? Все форумы облазил, ничего не нашёл...
 
вам еще раз повторить?  
выкладывайте ПРИМЕР.  
не весь файл.  
кусочек.  
100 кб, не больше.  
 
и не надо облазивать все форумы, ваша задача решается парой команд VBA.
фрилансер Excel, VBA - контакты в профиле
"Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
 
{quote}{login=ikki}{date=25.05.2011 06:02}{thema=}{post}вам еще раз повторить?  
выкладывайте ПРИМЕР.  
не весь файл.  
кусочек.  
100 кб, не больше.  
 
и не надо облазивать все форумы, ваша задача решается парой команд VBA.{/post}{/quote}  
 
Оригинал прислать не могу, но сделал пример.
 
в стандартный модуль, перед вызовом отобразить все строки  
 
sub del2level()  
application.screenupdating=false  
with activesheet  
for i = .cells(.rows.count, 1).end(xlup).row to 1 step -1  
if .rows(i).outlinelevel = 2 then .rows(i).delete  
next  
end with  
end sub
фрилансер Excel, VBA - контакты в профиле
"Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
 
{quote}{login=ikki}{date=25.05.2011 05:45}{thema=}{post}в стандартный модуль, перед вызовом отобразить все строки  
 
sub del2level()  
application.screenupdating=false  
with activesheet  
for i = .cells(.rows.count, 1).end(xlup).row to 1 step -1  
if .rows(i).outlinelevel = 2 then .rows(i).delete  
next  
end with  
end sub{/post}{/quote}  
 
Большое спасибо! Всё получилось =))
 
сорри, я как-то пропустил про "несколько тысяч".  
можно было и пошустрее макрос состряпать, с помощью Union()  
ну, раз и так получилось, то и не буду :)
фрилансер Excel, VBA - контакты в профиле
"Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
Страницы: 1
Читают тему
Наверх