Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
RSS
удаление столбцов по заданному условию, прошу помочь решить задачу удаления столбцов по заданному условию
 
Добрый день.

Прошу помочь в решении задачи удаления столбцов на листе книги по заданному условию.

Есть два десятка файлов по 2-2,5 тысячи столбцов с названием и принадлежностью объекта к определенному сегменту. Из них нужно всего 10-15% данных, остальное  можно удалять. В названиях столбцов есть повторяющиеся признаки, например здание, склад и дальше прикручен адрес. Хочу по условию наличия слова (части текста) в определенной ячейке найти удалить не нужные столбцы.

Пока нашел только такой вариант, но в нем не устраивает необходимость ввода условия в код "............" и точного совпадения.
Помогите, пожалуйста, сделать в коде ссылку на ячейку листа с проверкой на наличие частичного совпадения. Или подскажите как это корректно сделать.

Времени дали день, полная засада. Буду признателен за помощь.

Код
Sub Макрос2()
'
'Sub test()
' перебираем столбцы
' 2000 - это как бы последний столбец
For y = 1 To 2000
    ' перебираем строки
' если нужна 3-я строка, комментируем цикл for и жестко говорим что i=3 либо меняем for
    For i = 3 To 3
    Cells(i, y).Select
     If (Cells(i, y).Value = "..........") Then
     Columns(y).Delete
      y = y - 1
      GoTo Next_:
     End If
    Next i
Next_:
Next y

End Sub

 
Legos,
Код
Sub Макрос2()
'
'Sub test()
' перебираем столбцы
' 2000 - это как бы последний столбец
For y = 1 To 2000
    ' перебираем строки
' если нужна 3-я строка, комментируем цикл for и жестко говорим что i=3 либо меняем for
    For i = 3 To 3
    Cells(i, y).Select
     If Cells(i, y).Value like "*слово*" Then
     Columns(y).Delete
      y = y - 1
      GoTo Next_:
     End If
    Next i
Next_:
Next y
 
End Sub
 
Код
If (Cells(i, y).Value Like "*" & Cells(1,1).Value & "*") Then
Так?
Изменено: StoTisteg - 6 Сен 2018 12:43:54
 
Как раз и не устраивают изменения в коде. Нужно сослаться на ячейку листа.
 
Цитата
Legos написал:
Нужно сослаться на ячейку листа.
проставте свои значения рядка і столбца в
Код
If Cells(i, y).Value
 
код ругается на "end IF", где завершить цикл?
 
Legos, Не знаю. Кладите весь Ваш код.
 
Опытные коллеги, отзовитесь.....
 
Legos, по вашему мнению отозвались не опытные?
 
Legos, отозвались уже. Но поделитесь же чем-нибудь, кроме безграмотной заготовки кода...
 
Код
Sub Macro1()
Dim LastColumn As Long, i As Long, Txt As String
    Txt = Range("A1") 'Ячейка с текстом, который нужно искать
    LastColumn = Cells(3, Columns.Count).End(xlToLeft).Column ' вместо 2000 находим последний столбец по строке 3
    For i = LastColumn To 1 Step -1 'Перебиреам с ПОСЛЕДНЕГО столбца по первый
        If Cells(3, i) Like "*" & Txt & "*" Then Columns(i).Delete
    Next
End Sub


 
Юрий, большое спасибо. То, что нужно.
 
Только больше не пишите так:
Цитата
Legos написал:
Опытные коллеги, отзовитесь
Вам отвечали достаточно компетентные жители форума и давали квалифицированные советы.
 
StoTisteg о чем говорить, если Вы не видите полный код выложен или его часть? За попытку спасибо.
 
Legos, хватит! StoTisteg прекрасно видит, что код законченный, но он просил Вас кроме кода показать ещё и сам файл.
Страницы: 1
Читают тему (гостей: 1)
Наверх