我在 vba 中创建了一个函数来确定一行是否可见。该函数在可见时返回 1,如果不可见则返回 0。该函数如下所示:
Function IsRowVisible(MyRange As Range) As Integer
If (MyRange.EntireRow.Hidden = False) Then
IsRowVisible = 1
Else
IsRowVisible = 0
End If
End Function
然后我在我的工作簿中有一个列,我在一个公式中引用这个函数,例如:=IsRowVisible(A1)
公式返回#VALUE!直到我运行一个运行其他代码的宏,或者直到我单击公式并按 Enter。然后它工作正常。
我希望它像 Excel 中的普通函数一样工作,当您打开工作簿时会返回一个值。我哪里错了?
谢谢你的帮助!
这是否有所改善?:
Function IsRowVisible(MyRange As Range) As Integer
Application.Volatile
If (MyRange.EntireRow.Hidden = False) Then
IsRowVisible = 1
Else
IsRowVisible = 0
End If
End Function
这可能是一个波动性问题。您的函数可能只有在A1 中的值发生变化时才会重新计算。
您可能需要将您的函数与一个SUBTOTAL()
函数结合起来,因为SUBTOTAL()
当行隐藏/取消隐藏时会重新计算。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句