Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.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
Excel VBA隐藏调用单元格';s排_Vba_Excel - Fatal编程技术网

Excel VBA隐藏调用单元格';s排

Excel VBA隐藏调用单元格';s排,vba,excel,Vba,Excel,我试图在Excel中创建一个自定义公式,它将隐藏调用它的单元格的行。我已经看到了很多硬编码隐藏行的例子,但我希望这是基于公式的调用位置。下面是我的两种方法,它们都不起作用,但我不知道为什么。我错过了什么 Function HideRow(hide As Boolean) ' Method 1 Application.Caller.EntireRow.Hidden = hide ' Method 2 If (hide) Then Application.Cal

我试图在Excel中创建一个自定义公式,它将隐藏调用它的单元格的行。我已经看到了很多硬编码隐藏行的例子,但我希望这是基于公式的调用位置。下面是我的两种方法,它们都不起作用,但我不知道为什么。我错过了什么

Function HideRow(hide As Boolean)
   ' Method 1
   Application.Caller.EntireRow.Hidden = hide
   ' Method 2
   If (hide) Then
       Application.Caller.RowHeight = 0
   Else
       Application.Caller.RowHeight = 20
   End If
   HideRow = hide
End Function

正如YowE3K在评论中所解释的,这不可能通过公式实现。我所做的是将以下脚本链接到一个按钮,该按钮查看给定的范围,并隐藏代表单元格中有“Hide”一词的任何行:

Sub Submit()
For Each R In Range("HideRowRange")
    If R.Value = "Hide" Then
        R.EntireRow.rowheight = 0
    Else
        R.EntireRow.rowheight = 20
    End If
Next R
End Sub

如果您试图将其作为UDF调用(即在单元格中以
=HideRow(TRUE)
或类似形式使用),官方答案是“UDF无法修改Excel的状态-它所能做的就是将值返回到调用它的单元格中。”
activeCell
。不管怎样,我认为你不想要一个自由民主党。@YowE3K是正确的。解决这一问题的明显方法是使用
工作表\u Change
或类似事件来监视您用来决定是否隐藏行的内容的更改,然后在该事件中执行隐藏/取消隐藏。activeCell不是您想要的<代码>应用程序。调用方或应用程序。此单元格通常可以工作,但由于这是一个自定义项,您的运气不佳,原因如下:谢谢您的帮助。是否可以自动执行此操作,而无需每次重新运行筛选器来隐藏空行?