Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 单元格值为#N/A时如何隐藏列(G-AZ)_Vba_Excel_Vlookup - Fatal编程技术网

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

Vba 单元格值为#N/A时如何隐藏列(G-AZ),vba,excel,vlookup,Vba,Excel,Vlookup,我目前有一个vlookup,它用标题填充第1行(单元格G1-AZ1),如果vlookup不返回任何内容,我想隐藏列(G1-AZ1)。我知道这是一个简单的宏,但我对VBA是新手,我在搜索web时没有运气。 谢谢 我通常将这些公式放在ISNA()中,然后使用Excel过滤器隐藏空行 =IF(ISNA(VLOOKUP(A3,G1:H7,2,FALSE)),"",VLOOKUP(A3,G1:H7,2,FALSE)) 试试这个: 循环通过标题单元格 根据您的条件设置entireclumn.Hidden属

我目前有一个vlookup,它用标题填充第1行(单元格G1-AZ1),如果vlookup不返回任何内容,我想隐藏列(G1-AZ1)。我知道这是一个简单的宏,但我对VBA是新手,我在搜索web时没有运气。
谢谢

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

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

  • 循环通过标题单元格
  • 根据您的条件设置
    entireclumn.Hidden
    属性
  • 使用
    .ScreenUpdate=False
    来防止屏幕闪烁并加快其速度


  • 你能用excel按行过滤吗?我以为它只按列过滤?我希望模板自动隐藏没有标题填充的列。每列下面都填充了50个单元格,我使用这些单元格-如果标题已填充。当您将筛选器应用于列时,如果筛选器语句为true(或false-这取决于您的意图)(请确保在设置筛选器之前选中了所有数据单元格),则会显示/隐藏整行,以降低可读性,您可以编写
    cl.entireclumn.Hidden=(iError(cl)和cl=CVErr(xlErrNA))或(而不是iError(cl)和cl=CVErr(xlErrNA))
    ;-)+1.
    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