当单元格值为#N / A时,如何隐藏列(G-AZ)

时间:2012-04-10 19:18:12

标签: excel vba excel-vba vlookup

我目前有一个带有标题的vlookup填充第1行(单元格G1-AZ1),如果vlookup没有撤回/ #N / A,则想要隐藏列(G1-AZ1)。我知道这是一个简单的宏,但我是VBA的新手,我没有运气搜索网络。 谢谢!

2 个答案:

答案 0 :(得分:1)

我通常将此类公式放在 ISNA()中,然后只使用Excel过滤器隐藏空行

=IF(ISNA(VLOOKUP(A3,G1:H7,2,FALSE)),"",VLOOKUP(A3,G1:H7,2,FALSE))

答案 1 :(得分:1)

试试这个:

  1. 循环标题单元格
  2. 根据您的条件设置EntireColumn.Hidden属性
  3. 使用.ScreenUpdating = False防止屏幕闪烁并加快速度

  4. 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