2013-02-21 7 views
1

У меня есть столбцы Row 1 катится ..Как удалить весь столбец, если он пуст

IF Column C doesn't have data in entire column then delete C D E F 
IF Column D doesn't have data in entire column then delete D E F 
IF Column E doesn't have data in entire column then delete E F 
IF Column F doesn't have data in entire column then delete F 

Точно так же для заголовка Нижегородских

IF Column G doesn't have data in entire column then delete G H I J K L M N 
IF Column H doesn't have data in entire column then delete H I J K L M N 
IF Column I doesn't have data in entire column then delete I J K L M N 
IF Column J doesn't have data in entire column then delete J K L M N 
IF Column K doesn't have data in entire column then delete K L M N 
IF Column L doesn't have data in entire column then delete L M N 
IF Column M doesn't have data in entire column then delete M N 
IF Column N doesn't have data in entire column then delete N 


A B C D E F G H I J K L M N O P Q R 
TI1 TE2 TT1 TT2 TT3 TT4 NN1 NN2 NN3 NN4 NN5 NN6 NN7 NN8 CMT K2 K3 
BLAH BLAH 
+0

Я вижу противоречие: каждый столбец имеет заголовки. Как «Столбец C не имеет данных во всей колонке» может быть возможен? –

+0

Это 99.999% у него будут данные, но солнце поднимается с другого направления, там могут быть данные, если у C нет данных, тогда 100% D E F не будет иметь в нем данных. – Mowgli

+0

Pal, если столбец имеет заголовки - он не может быть пустым! предоставьте точное состояние, пожалуйста. –

ответ

2

Я хотел бы сделать это, добавив в дополнительном строка для работы (вы всегда можете скрыть ее позже).

Предположим, что ваши заголовки находятся в строке1, а затем добавьте дополнительную (вспомогательную) строку в строке2.

  • В С2, положить в следующей формуле (заменить C30 с соответствующим значением для Вас):

    =COUNTA(C3:C30)

  • В D2, положить в следующей формуле:

    =IF(C2=0,0,COUNTA(D3:D30))

  • Перетащите эту формулу по E & F

  • формула Redo C в G

  • формула Redo двойки в Н и протяните через к N

... Etc.

Теперь это просто вопрос написания очень простой макрос для удаления любого столбца, где значение row2 = 0.

Это казалось самым простым способом сделать это для меня, но есть МНОГО других способов.

Надеюсь, что это поможет!

0

Этот макрос делает ваш первый бит - второй этап будет очень похожим.

Вам потребуется пробивать 5 с длиной вашего стола.

GoTo обычно не нравится, но я использовал его в этом коде.

Sub firstbit() 

If Excel.WorksheetFunction.CountA(ActiveSheet.Range("C2:C5")) = 0 Then 
    Excel.ActiveSheet.Range("C2:F5").clearcontents 
    GoTo FirstStageComplete: 
End If 
If Excel.WorksheetFunction.CountA(ActiveSheet.Range("D2:D5")) = 0 Then 
    Excel.ActiveSheet.Range("D2:F5").clearcontents 
    GoTo FirstStageComplete: 
End If 
If Excel.WorksheetFunction.CountA(ActiveSheet.Range("E2:E5")) = 0 Then 
    Excel.ActiveSheet.Range("E2:F5").clearcontents 
    GoTo FirstStageComplete: 
End If 
If Excel.WorksheetFunction.CountA(ActiveSheet.Range("F2:F5")) = 0 Then 
    Excel.ActiveSheet.Range("F2:F5").clearcontents 
End If 
FirstStageComplete: 

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