excel - 我是否必须创建一个类来处理应用程序级事件?
问题描述
这篇关于“将事件与应用程序对象一起使用”的文章指出:
在您可以对Application对象使用事件之前,您必须创建一个类模块并声明一个带有事件的Application类型的对象。
在ThisWorkbook
s 模块的工作簿中,我有以下代码
Option Explicit
Private WithEvents App As Excel.Application
Private Sub Workbook_Open()
Set App = Application
End Sub
Private Sub App_SomeEvent()
'This event fires without problems
End Sub
据我测试,代码没有问题。然而,上面提到的文章让我想到:
我知道ThisWorkbook
是一个类模块,与工作表模块相同,但我真的可以将它们用于此目的吗?
在不创建新的类模块时我有什么要记住的,或者我必须创建一个类模块的文章是错误的?
解决方案
完全可以让 ThisWorkbook 模块处理应用程序事件。
如果有的话,你需要记住的是它违反了单一责任原则。处理应用程序事件不是工作簿的责任。创建一个专门的类来处理特定目的的应用程序事件可能有助于保持架构的整洁。
但是,从功能本身的角度来看,没有问题。
推荐阅读
- r - 在数据框中应用列表条件块
- visual-studio-code - 我试图用代码服务器在我的平板电脑上运行 vs 代码
- ios - 将一个以函数作为参数的 Swift 方法导出到 React Native
- javascript - 输入出生日期时,我如何才能使您只能在 15 至 80 岁之间
- scala - 如何使用 Scala 映射方法更新序列?
- android - Firebase - 重新打开应用程序后用户注销时应用程序关闭
- c++ - 使用大括号而不是 make_pair 给出错误
- javascript - 收到此错误 TypeError [ERR_INVALID_ARG_TYPE]: The first argument must be of type string or an instance of Buffer or Uint8Array
- php - htdocs/vendor/composer/autoload_real.php 在第 71 行
- javascript - React - 多个 Axios 请求