Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
RSS
Удалить всё, кроме столбцов с определённым текстом
 
Добрый вечер,
подскажите пожалуйста как реализовать условие на уровне макроса:
Удалить всё, кроме столбцов с заголовками лук, капуста.
 
Юрец, я подправил название темы, но в следующий раз не останавливайтесь на половине фразы. Н у что это за название - Удалить всё, кроме столбцов с?
Напомнило из Винни Пуха "Посторонним В"
По вопросу.
вариант: перебираем циклом ячейки заголовков и проверяем - если не равно, то удаляем столбец.
 
Код
Sub lykkapusta()
lc = Cells(1, Columns.Count).End(xlToLeft).Column
For j = lc To 1 Step -1
    If Cells(1, j) = "лук" Or Cells(1, j) = "капуста" Then GoTo nextColumn
        Cells(1, j).EntireColumn.Delete
nextColumn:
Next
End Sub
Изменено: Leanna - 28 Фев 2015 20:18:11
Работать надо не 12 часов, а головой.
 
Вот макрос, без проверок на ошибки:
Код
Sub DelWParticulars()
Dim rng As Range
Dim cell As Range
Dim bln As Boolean
Dim rngInp As Range
Set rngInp = Application.InputBox("Enter some range", Type:=8)
For Each cell In Intersect(rngInp, rngInp.Parent.UsedRange)

    bln = (cell = "лук") Or (cell = "капуста") Or (cell = "Лук") Or (cell = "Капуста")
    If rng Is Nothing And bln Then
        Set rng = cell
    ElseIf bln Then
        Set rng = Union(rng, cell)
    End If
    
Next cell

If Not rng Is Nothing Then rng.EntireColumn.Delete

End Sub
Изменено: Все_просто - 28 Фев 2015 20:23:08
С уважением,
Федор/Все_просто
 
Leanna, внесите пож. поправку : прежде удалить первую строку, либо сразу искать во второй строке.
Дело в том, что после экспорта заголовки находятся во второй строке. А макрос на вторую строку не работает
 
Цитата
Юрец написал: Дело в том, что после экспорта заголовки находятся во второй строке.
просто совет: не торопитесь рассказывать все секреты!
это следует делать постепенно, по одному секрету за раз.
и ни в коем случае не прикладывайте файл, и правила не читайте - как бы Вас ни просили!

и тогда, Бог даст, простой вопрос растянется на неделю и займёт несколько страниц.
фрилансер Excel, VBA - контакты в профиле
"Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
 
Цитата
Юрец написал: Дело в том, что после экспорта заголовки находятся во второй строке.
А вот для того, возникало подобных  "дело в том, что...", нужно читать Правила и прикреплять свой пример с реальной структурой данных.
 
ikki, Я обязательно буду пользоваться вашим советом, спасибо :)
 
Юрец, а вот ёрничать не надо!
 
ikki, рассмешили до слез)

так вроде всё понятно должно быть единички  меняем на двоечки
Код
Sub lykkapusta()
lc = Cells(2, Columns.Count).End(xlToLeft).Column
For j = lc To 1 Step -1
    If Cells(2, j) = "лук" Or Cells(2, j) = "капуста" Then GoTo nextColumn
        Cells(2, j).EntireColumn.Delete
nextColumn:
Next
End Sub
Изменено: Leanna - 28 Фев 2015 20:55:11
Работать надо не 12 часов, а головой.
 
Leanna, а это не мне спасибо.
вот если бы Вы попросили у автора темы пример с файлом прежде, чем писать код для воображаемого листа - то Вы сразу бы написали нужный вариант.
и мой совет не понадобился бы.
и в теме было бы скучно.
и она бы была всего на три сообщения.

а так - и модератору дали поучаствовать, чтобы не скучал.
и жёсткий диск на сервере поплотней набили ценной перепиской.
сплошные польза и позитив.
фрилансер Excel, VBA - контакты в профиле
"Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
 
Leanna, :) Спасибо! Буду пробовать.
 
ikki, Если это упрек, то я прохожу мимо.
Каждый сюда пишет ровно в меру своего развлечения и свободного времени.
Я модератора не напрягала что бы он что-то писал (в контексте "дали поучаствовать") и "ценной перепиской" за исключением этого поста "жесткий диск" не наполняла. К себе претензий не вижу.
Согласна что плохо не прикладывать файл.  Но воспитывать и ждать файла, лично мне, в данном случае не хотелось.
Работать надо не 12 часов, а головой.
 
Цитата
Leanna написал: Если это упрек
то Вы это вариант исключили самостоятельно в последующем тексте.
Цитата
Leanna написал: Каждый сюда пишет ровно в меру своего развлечения и свободного времени.
конечно!
это же глобальная помойка интернета, где нет ни правил, ни рекомендаций, ни принятых норм.
как вздумается и когда захочется - совершенно верно.
лишь бы развлечься. абсолютно согласен.

в качестве аналогии - у меня в подъезде некоторые жильцы долго, громко и абсолютно искренне возмущаются на лавочке, что в подъезде накурено.
к кому они апеллируют - точно не скажу. но, кажется, непосредственно к Путину.
при этом мимо курящих в своём подъезде они проходят молча (и это не какие-то амбалы там курят - обычные мужики и молодёжь).
какие уж тут "претензии", о чём Вы...
Изменено: ikki - 28 Фев 2015 22:06:34
фрилансер Excel, VBA - контакты в профиле
"Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
Страницы: 1
Читают тему (гостей: 1)