簡體   English   中英

更改單元格時,excel VBA自動運行宏

[英]excel VBA run macro automatically when a cell is changed

通過此鏈接,我在問題中找到了很多答案: 在單元格更改時自動執行Excel宏

我要提出一個新問題的原因是因為我沒有足夠的聲譽來對該線程發表評論,而且我很難將鏈接的單元格連接到要運行的宏。

因此,鏈接的單元格包含一個公式,該公式僅在我更改其他單元格時才使值更改。 我遇到的問題是,僅當我更改單元格的值而不是公式的值時,我的宏才會運行。 我正在尋找一種當公式返回的值更改時激活宏的方法。

到目前為止,這是我的代碼:

我的單元格區域名為“值”,我想隱藏標簽“刷新”

Private Sub Worksheet_Change(ByVal Target As Range)

    If Intersect(Target, Me.Range("Values")) Is Nothing Then Exit Sub
        Application.EnableEvents = False 'to prevent endless loop

        Sheet1.Refresh.Visible = False

        Application.EnableEvents = True
End Sub

很抱歉再次提出另一個問題,但是正如我所說,我無法在其他主題上發表評論。

使用此代碼。 它將值存儲到工作表中最后一行\\列的單元格中。 您需要將值手動存儲一次,但是此后它將在每次更改時為您存儲該值,以便它可以檢查下一次計算工作表的時間(並且公式結果可能會更改)。

Private Sub Worksheet_Calculate()

Dim bOld as Byte
bOld = Me.Cells(Me.Rows.Count,Me.Columns.Count)

If Me.Range("Values") <> bOld Then 

    Application.EnableEvents = False 'to prevent endless loop
    Me.Cells(Me.Rows.Count,Me.Columns.Count).Value = Me.Range("Values").Value 'store new value
    Sheet1.Refresh.Visible = False
    Application.EnableEvents = True

End If

End Sub  

暫無
暫無

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

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