2013-10-11 3 views
-1

Может ли кто-нибудь сказать мне, какой код VB я могу использовать, чтобы получить следующий результат макроса excel?Удалить столбец A, если колонка B пуста

Я хочу, чтобы содержимое из столбца A было удалено, если столбец B пуст. Это то, как далеко я пришел:

If Range ("B66")= IsEmpty Then 
Range ("A66").Select 
Selection.ClearContents 
End If 
+2

Вопросы, требующие кода, должны демонстрировать минимальное понимание решаемой проблемы. Включите попытки решения, почему они не работают и ожидаемые результаты. См. Также: [Контрольный список вопросов переполнения стека] (http://meta.stackexchange.com/questions/156810/stack-overflow-question-checklist) –

+0

Я изменил свои вопросы. Я надеюсь, что это более ясно. – adp

ответ

1
Sub Main() 
Application.ScreenUpdating = False 
    Dim i As Long, r As Range 
    For i = Range("A" & Rows.Count).End(xlUp).Row To 1 Step -1 
     Set r = Range("A" & i) 
     If IsEmpty(r.Offset(0, 1)) Then r.EntireRow.Delete shift:=xlUp 
    Next i 
Application.ScreenUpdating = True 
End Sub 

первый вам нужен цикл, чтобы перебрать все ячейки в столбце A

For i = Range("A" & Rows.Count).End(xlUp).Row To 1 Step -1 устанавливает цикл, который перебирает из последней ячейки в первой в колонке А

Range("A" & Rows.Count).End(xlUp).Row находит последнюю ячейку, используемый в колонке A

Set r = Range("A" & i) устанавливает переменную г быть объектом Диапазон

If IsEmpty(r.Offset(0, 1)) Then Смещение указывает на ячейку в столбце B в той же строке, так что если соседняя ячейка столбца А (который является клетка (sameRow, колонка Б) пусто, то

r.EntireRow.Delete shift:=xlUp удалить всю строку

Application.ScreenUpdating = False/True выключить обновление экрана, чтобы ускорить выполнение при использовании петель

+0

Зачем удалять EntireRow .. Разве вы не подразумеваете 'EntireColumn'? –

+1

на английском языке и в программировании не имеет смысла удалять всю колонку. Я думаю, что OP означало ROWS на самом деле. Также его psuedo-code заставляет меня думать, что он означает 'row', когда он говорит' column' –

+0

Отлично! Большое вам спасибо. – adp

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