Я создал таблицу, которая создает список инвентаря. Макрос, который я пишу, открывает страницу поиска внутри сети, вводит номер каталога в строке a (не показан на изображении). и возвращает информацию на лист excel. Когда он входит в местоположения (RIG), он создает заголовок в строке 2. Я создал второй макрос, который удаляет неактивные местоположения. После этого фильтра у меня остается более чистый список, но я хочу удалить заголовок в строке 2, у которого больше нет информации ниже (например, столбцы AH, AI, AJ и т. Д.). Я знаю, что могу найти последний использованный столбец рабочего листа, но то, что я хочу сделать, - это четкое форматирование, граница и содержимое в строке2 всякий раз, когда строка3 для прокрутки пуста.Как исключить конкретную строку из функции «Найти последнюю колонку»
Есть ли способ настроить это, чтобы исключить строку2 из поиска?
Dim LastColumn As Integer
Set LastColumn = Cells.Find(What:="*", After:=[A1], _
SearchOrder:=xlByColumns, _
SearchDirection:=xlPrevious).Column
Cells(2,LastColumn).Select
ActiveCell.Offset(0,1)
Do
If not ActiveCell = "" Then
ActiveCell.EntireColumn.Delete(xlToLeft)
DoEvents
Else
Exit Do
End If
Loop
Финальный код после включения Студенты ответа Гари. Спасибо!!
'Find last used column below header row
Dim wf As WorksheetFunction
Dim N As Long
Dim rCol As Range
Set wf = Application.WorksheetFunction
Cells(1, 1).EntireRow.Hidden = True
Cells(2, 1).EntireRow.Hidden = True
Do
For N = Columns.Count To 1 Step -1
Set rCol = Cells(1, N).EntireColumn
If wf.Subtotal(103, rCol) > 0 Then
Exit Do
End If
Next
Loop
Cells(1, 1).EntireRow.Hidden = False
Cells(2, 1).EntireRow.Hidden = False
'Trim header row to used columns only
Cells(2, N).Select
ActiveCell.Offset(0, 1).Select
Do
If Not ActiveCell = "" Then
ActiveCell.EntireColumn.Delete (xlToLeft)
DoEvents
Else
Exit Do
End If
Loop
Отлично, я не знал о «.entirerow.hidden = true». Это скроет ее от видимости на листе, будет ли это означать, что функция поиска не сможет ее увидеть? – TPJ87