0

我目前有一个用标题填充第 1 行(单元格 G1-AZ1)的 vlookup,如果 vlookup 没有任何结果/#N/A,我想隐藏列(G1-AZ1)。我知道这是一个简单的宏,但我是 VBA 的新手,我在网上搜索的运气为零。谢谢!

4

2 回答 2

1

尝试这个:

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

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
于 2012-04-11T06:43:52.057 回答
1

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

=IF(ISNA(VLOOKUP(A3,G1:H7,2,FALSE)),"",VLOOKUP(A3,G1:H7,2,FALSE))
于 2012-04-10T19:23:38.403 回答