2013-10-03 3 views
0

У меня есть заголовки столбцов, начинающиеся в столбце L в будущем. Заголовки столбцов должны быть в определенном порядке.Вставить или Удалить столбец, если он не равен Заголовок

Рукой, мне нужно вставить столбцы, чтобы все было в порядке. Я помещаю вставку или удаление в заголовок вопроса, потому что я предполагаю, что легко пройти между ними.

Я понятия не имею, как это начать. У меня есть код для удаления строк при добавлении наблюдения с помощью «Всего». Однако как изменить его, чтобы он работал для столбцов?

LR = ThisWorkbook.Sheets("Cheese_D").Range("A" & Rows.Count).End(xlUp).Row 

With ThisWorkbook.Sheets("Cheese") 
    For i = LR To 2 Step -1 
     With ThisWorkbook.Sheets("Cheese").Range("A" & i) 
      If Right(.Value, 5) = "Total" Then .EntireRow.Delete 
     End With 
    Next i 
End With 
+0

did u try '.EntireColumn.Delete'? –

+0

Правильно. '.EntireColumn.Delete' должен удалить весь столбец. Как изменить другую информацию в разделе «For» и «With» для перемещения по столбцам? Я отредактировал мой код, чтобы показать, что LR был – favoritewordgoeshere

ответ

0

Один из способов взглянуть на столбцов в диапазоне, как это:

Set rng = Range("L:S") 
For Each col In rng.Columns 
    'do your logic and .EntireColumn.Delete 
next 

Или посмотрите на все столбцы в листе, как это:

For Each col in ThisWorkbook.Sheets("Cheese").Columns 
    'your logic 
Next 

Теперь добавьте в свою логику:

Set rng = Range("L:S") 
For Each col In rng.Columns 
    If Cells(1, col.Column).Value = "Total" Then col.EntireColumn.Delete 
next 

Эти четыре строки заменяют весь ваш код в исходном сообщении.

+0

Хмм, я получаю несоответствие типа в строке IF – favoritewordgoeshere

+0

Извините, я исправил его сейчас. Взглянуть. –

Смежные вопросы