簡體   English   中英

打開工作簿時如何使VBA功能起作用

[英]How can I make a VBA function work upon opening the workbook

我在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()會重新計算。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM