В настоящее время у меня есть vlookup заполняющая строка 1 (ячейки G1-AZ1) с заголовками и хотелось бы скрыть столбцы (G1-AZ1), если vlookup отбрасывает ничего/# N/A. Я знаю, что это простой макрос, но я новичок в VBA, и мне не повезло искать в Интернете. Спасибо!Как скрыть столбцы (G-AZ), когда значение ячейки равно # N/A
0
A
ответ
1
Я обычно размещают такие формулы в ISNA(), а затем просто использовать Excel фильтр, чтобы скрыть пустые строки
=IF(ISNA(VLOOKUP(A3,G1:H7,2,FALSE)),"",VLOOKUP(A3,G1:H7,2,FALSE))
1
Попробуйте это:
- Loop Повсеместно он заголовка ячеек
- Set the
EntireColumn.Hidden
по вашему критерию - Используйте
.ScreenUpdating = False
, чтобы предотвратить мерцание экрана и sp Eed его
Sub HideColumns()
Dim rng As Range
Dim cl As Range
Application.ScreenUpdating = False
Set rng = [G1:AZ1]
For Each cl In rng
If IsError(cl) Then
cl.EntireColumn.Hidden = cl = CVErr(xlErrNA)
Else
cl.EntireColumn.Hidden = cl = ""
End If
Next
Application.ScreenUpdating = True
End Sub
+0
Чтобы сделать это даже менее читаемо, вы могли бы написать 'cl.EntireColumn.Hidden = (IsError (cl) И cl = CVErr (xlErrNA)) Или (Not IsError (cl) И cl = CVErr (xlErrNA))' ;-) +1 –
+1 для поддержания его просто :) –
возможность использовать Excel для фильтрации по строке Вы? Я думал, что фильтруются только по столбцам? Я хотел бы, чтобы шаблон автоматически скрывал столбцы, которые не заполнены заголовком. Каждый столбец содержит 50 ячеек, заполненных ниже, которые я использую, если заголовок заполнен. – user1324883
Когда вы применяете фильтр к столбцам, он показывает/скрывает целую строку, если утверждение фильтра истинно (или false - это зависит от ваших намерений) (убедитесь, что вы выбрали все ячейки данных до того, как вы установите фильтр) – Andrew