Я пытаюсь удалить строки на основе нескольких критериев, распределенных по нескольким столбцам. По сути, у меня есть список имен в столбце A, и список планов через ряд 1.Удалить пустые строки на основе нескольких критериев
Проблема в том, иногда есть план 1, иногда есть план 2, а иногда есть и то, и другое, как на приведенной выше картинке. Планы также меняют, в каком столбце они находятся.
Я пытаюсь написать некоторые vba, чтобы увидеть, существует ли какой-либо из этих планов в заголовке, и если один или оба из них существуют, удалите строку, в которой человек пустое в обоих. На картинке выше строка с «Барри-облигациями» должна быть удалена.
До сих пор у меня есть метод удаления пробелов в одном столбце, но я не знаю, как это сделать для более чем одного столбца, или для переключения между именами планов (например, план 1 или план 2).
Sub Delete_non_used_Loc()
Dim ws As Worksheet
Dim ws2 As Worksheet
Dim Acell As Range
Dim rng As Range
Dim col As Long
Dim Lastrow As Long
Dim colName As String
'Value for deleting blanks
Dim DelTerm As Range
Set ws = Sheets("hello")
'This statement finds the Plan in the column in the carrier report.
With ws
Set Acell = .Range("A1:Z2").Find(What:="Plan 1", LookIn:=xlValues, LookAt:=xlWhole, MatchCase:=False)
'If the plan column is found, then:
If Not Acell Is Nothing Then
col = Acell.Column
colName = Split(.Cells(, col).address, "$")(1)
Lastrow = .Range(colName & .Rows.Count).End(xlUp).Row
'This is the range of rows in the column specified (Plan 1).
Set rng = .Range(colName & "2:" & colName & Lastrow)
'Finds and deletes terminated employees by searching for blanks via the Plan 1 column.
Do
Set DelTerm = rng.Find("", LookIn:=xlValues) 'Finds the blanks.
If Not DelTerm Is Nothing Then DelTerm.EntireRow.Delete 'Deletes the row where blanks are found.
Loop While Not DelTerm Is Nothing
Else
MsgBox "Could not delete blank employees!"
End If
End With
End Sub
Hi Dan, спасибо большое за ответ, я бы хотел отпраздновать. Однако я должен был указать, что столбцы «План» не обязательно являются единственными столбцами в книге. В рабочей книге могут быть отдельные столбцы. Я изменил картину, чтобы показать, как она может выглядеть. Я знаю, что заголовки всегда будут называться «План 1», «План 2» и т. Д., Но поиск последнего столбца не будет работать, потому что данные в этих столбцах не являются тем, что мне нужно фильтровать. Я полагаю, я мог бы удалить неиспользуемые столбцы ... – NLourme
Эй @NLourme - нужны ли эти столбцы «Случайные данные», или вы можете их удалить? Если они могут быть удалены, решение выше может быть изменено с помощью быстрого цикла, который перемещается по столбцам (назад, конечно) и удаляет столбцы, не содержащие строку «Plan» –
Привет, @ Dan Wagner, я мог бы удалить их, хотя я бы предпочел не. Я запускаю другие макросы и тесты для этих столбцов, поэтому мне нужно будет добавить их обратно. Один из них, хотя у меня был, устанавливал значения «План 1», «План 2» и т. Д. В массиве и прокручивал их.Не уверен, думаете ли вы, если это возможно? – NLourme