Страницы: 1
RSS
VBA. Макрос очищения определенных столбцов по названию.
 
Добрый день, уважаемые коллеги!

Очень прошу у Вас помощи. У меня есть файл, где каждый день нужно очищать определенные ячейки от данных. Макрос тоже есть примитивный. Вот типа такого:
Код
Sub ы()
Application.ScreenUpdating = False
Application.Calculation = xlManual

Range("L9:L20000").ClearContents
Range("AJ9:AM20000").ClearContents
Range("BB9:BC20000").ClearContents
Range("CA9:CC20000").ClearContents
Range("CP9:CQ20000").ClearContents

Application.Calculation = xlAutomatic
Application.ScreenUpdating = True
End Sub

Но есть проблема, что  сами столбцы иногда сдвигаются и получается, что очищаются нужные данные. Можно ли добавить условие, чтобы только определенные  названия столбцов очищались. Пример во вложении. Буду очень благодарен, если кто-нибудь поможет.
Изменено: Billy - 14.08.2018 20:23:17
 
Billy,
Код
Sub Bi()
Dim x
  With ActiveSheet.ListObjects.Add(xlSrcRange, Range("$A$8").CurrentRegion, , xlYes)
    .TableStyle = ""
    For Each x In Split("ъ кк ее нн гг")              'перечислите заголовки столбцов через пробел
      .ListColumns(x).DataBodyRange.ClearContents
    Next
    .Unlist                                           'необязательно - преобразовать таблицу в обычный диапазон
  End With
End Sub
 
Еще вариант
P.S.   Не обратил внимания, что очищать нужно одни и те же постоянные столбцы, вот и сделал для любых на выбор :)
Изменено: _Igor_61 - 14.08.2018 23:24:32
 
По мотивам макроса Казанского, но без применения умной таблицы
Код
Sub iColumnsClear()
Dim x
Dim iLastRow As Long
Dim x_col As Integer
   For Each x In Split("ъ кк ее нн гг")              'перечислите заголовки столбцов через пробел
     x_col = Rows(8).Find(x, , xlValues, xlWhole).Column
     iLastRow = Cells(Rows.Count, x_col).End(xlUp).Row
     Range(Cells(9, x_col), Cells(iLastRow, x_col)).ClearContents
   Next
End Sub

 
Цитата
Billy написал:
Макрос очищения
:D  
 
Всем огромное спасибо!!!!
 
Kuzmich, спасибо Вам еше раз за макрос. Если Вас не затруднит, есть один вопрос. А если в заголовке несколько слов через пробел, как можно его записать?
Например: Цена Конкурента
 
Цитата
если в заголовке несколько слов через пробел
А вы можете записать Цена-Конкурента или Цена_Конкурента ?
Изменено: Kuzmich - 15.08.2018 13:38:08
 
Kuzmich, могу конечно. Просто хотел спросить реально ли с пробелами сделать или надо полностью макрос менять?
Страницы: 1
Наверх