【问题标题】:Catch an event in a different workbook在不同的工作簿中捕捉事件
【发布时间】:2015-11-14 19:07:50
【问题描述】:

我想知道是否可以在另一个工作簿中捕获事件。

一个宏将打开一个工作簿供用户使用,我希望能够在其 selection_change 事件上运行另一个宏。不,代码不能存储在刚刚打开的工作簿中。

除了以编程方式将代码添加到打开的工作簿的 ThisWorkbook 模块之外,还有其他方法吗?

这种方式是不安全和不稳定的,而且通常是 bleh。

【问题讨论】:

    标签: vba excel events


    【解决方案1】:

    您只需使用事件处理程序在类模块中获取对已打开工作簿的WithEvents 引用。例如:

    'In ThisWorkbook 
    Option Explicit
    
    Private WithEvents other As Worksheet
    
    Private Sub Example()
    
        Dim wb As Workbook
        Set wb = Workbooks.Open("C:\Dev\other.xlsx")
        Set other = wb.Sheets("Sheet1")
    
    End Sub
    
    Private Sub other_SelectionChange(ByVal Target As Range)
    
        Debug.Print Target.Address
    
    End Sub
    

    【讨论】:

    • 谢谢!它对我不起作用,当我更改选择时 other_SelectionChange 不会触发。不过明天我会继续尝试,现在对我来说可能为时已晚......
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-17
    • 1970-01-01
    相关资源
    最近更新 更多