将 WithEvents 与实现另一个类的类一起使用时出现运行时错误 459

2024-04-17

我正在 Word 中开发 VBA 项目,并且在使用实现另一个类的类时遇到处理事件的问题。

我定义了一个空类,IMyInterface:

Public Sub Xyz()
End Sub

Public Event SomeEvent()

还有一个班级,MyClass实现上述内容:

Implements IMyInterface

Public Event SomeEvent()

Public Sub Xyz()
  ' ... code ...
  RaiseEvent SomeEvent
End Sub

Private Sub IMyInterface_Xyz()
   Xyz
End  Sub

如果我创建第三个类,OtherClass,声明一个具有接口类类型的成员变量:

Private WithEvents mMy As IMyInterface

并尝试使用实现类的实例初始化此变量:

Set mMy = New MyClass

我收到运行时错误“459”:此组件不支持这组事件。

The MSDN 页面 http://msdn.microsoft.com/en-us/library/aa264500%28VS.60%29.aspx对于此错误消息指出:

“您尝试使用 WithEvents 带有不能的组件的变量 作为事件源 指定的事件集。例如, 你可能正在沉没事件 对象,然后创建另一个对象 实现第一个对象。 尽管你可能认为你可以 从已实施的事件中吸收事件 对象,这不是自动的 案件。实现仅实现一个 方法和属性的接口。”

以上几乎总结了我正在尝试做的事情。 “情况并非自动如此”,而不是“这完全不可能”,似乎表明我需要做一些手动工作才能使其正常工作,但事实并非如此告诉我what!有谁知道这在VBA中是否可行?


显然,事件不允许像您想要使用“Implements”一样通过接口类传递到具体类中。在这篇文章中,它指出:“抽象接口的事件声明不包含在具体类继承的接口中。我没有在任何地方发现这已被确认为一个错误;但是,它似乎确实是一个错误。 ”

这是来源的链接:http://www.devx.com/getHelpOn/10MinuteSolution/20416 http://www.devx.com/getHelpOn/10MinuteSolution/20416

:-(

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 WithEvents 与实现另一个类的类一起使用时出现运行时错误 459 的相关文章

  • IE.navigate2 因保护模式关闭而失败

    我正在从 Excel VBA 自动化 IE8 Excel 2010 Windows 7 Set IE CreateObject InternetExplorer Application IE Navigate2 URL 如果 URL 是处于
  • 具有多个条件(全部等于相同值)的 IF 语句的替代方案

    还有比这更好的方法吗 假设所有变量都为零 If var1 0 Or var2 0 Or var3 0 Or var4 0 Or var5 0 Or var6 0 Then do something End If 你可以用Select Cas
  • 将包含换行符的文本文件导入到 Excel 中

    我有一个纯文本文件 如下所示 some text containing line breaks 我正在尝试说话excel 2004 Mac v 11 5 正确打开此文件 我希望只看到一个单元格 A1 包含上述所有内容 不带引号 但可惜的是
  • 我需要代码在两行之间复制并粘贴到另一张表中,并给出任何值?

    例如 我有 50 行数据 第一行有学生的名字 我需要代码将数据从 RAM 复制到 RAMESH 在这之间我有 20 行 我需要代码来复制行并将其粘贴到另一张纸中 它不应该问我名字 默认情况下 它必须采用 RAM 和 RAMESH 名称 好的
  • 如何在不滚动的情况下截取整个电子邮件正文?

    我正在使用 OL2010 想要制作整个电子邮件的屏幕截图 不仅仅是 屏幕 可以用VBA或者外部程序来完成吗 有一个类似的问题 https stackoverflow com questions 4176340关于如何使用 C 实现这一点 注
  • OpenArgs 为空问题

    我正在使用OpenArgs使用时发送值的参数DoCmd OpenForm DoCmd OpenForm frmSetOther acNormal acFormAdd acDialog value 然后我用Me OpenArgs在打开的表格内
  • 在 VBA 中循环合并单元格

    是否可以循环遍历合并的单元格vba questions tagged vba 我的范围内有 6 个合并单元格B4 B40 我只需要这 6 个单元格中的值 6 次迭代 上面的答案看起来已经让你排序了 如果您不知道合并的单元格在哪里 那么您可以
  • VBA根据单元格的值是否为零显示/隐藏行

    我有一个 Excel 工作表 我想根据另一个单元格中的值隐藏或取消隐藏某些行 简而言之 整个事情应该取决于单元格中的值C2 D2 E2 If C2 is blank我想rows 31 to 40被隐藏 如果是的话不为空 他们需要是visib
  • 如何使用VBA根据条件删除Excel中的行?

    我目前正在构建一个宏来格式化数据表并删除不适用的数据行 具体来说 我希望删除列 L ABC 的行以及删除列 AA DEF 的行 到目前为止 我已经实现了第一个目标 但还没有实现第二个目标 现有代码是 Dim LastRow As Integ
  • 在 MS Word 中运行外部 vba 代码

    我可以将外部代码链接到 Word 文档吗 我有很多带有宏的 Word 文档 VBA 代码 全部使用相同的代码 我希望代码从外部源运行 而不是从所有这些文档中运行 这样 如果我必须更新代码 我只有一个地方需要更新 您可以创建一个模板并将其放入
  • 在 VBA Excel 中查找、剪切和插入行以匹配借项和贷项值

    我在 Sheet1 中有以下设置数据 并从第 4 行 A 列开始 其中标题位于第 3 行 No Date Code Name Remarks D e b i t Cr e d i t 1 4 30 2015 004 AB 01 04 15
  • 将匹配的行复制到另一张纸中

    我有两张表 sheet1 和sheet 2 我正在查看工作表 1 的 T 列 如果工作表 2 中 T 包含 1 则粘贴完整行 该代码运行良好 但它将sheet2 中的结果粘贴到sheet1 的同一行中 这会导致行之间出现空白 任何人都可以建
  • Word通配符搜索的正则表达式查找包含至少3个连续数字的括号

    在以下示例中 airspeed AS user 104A 104B device 101 vehicles 105A C 搜索应该找到 104A 104B 101 and 105A C 但不是 AS 我尝试使用 0 9 0 9 0 9 但这
  • Excel工作簿关闭后反复打开

    我使用了 Application ontime 方法来调度一些宏 关闭工作簿后 它会一次又一次地打开 为了解决这个问题 我在工作簿上设置了另一个事件 BeforeClosed 现在它显示运行时错误 1004 Object Applicati
  • 如果总和为 0,则查找并删除带标题的最后一列

    我想创建一个宏 查找带有标题的最后一列 并仅当该列的总和等于零时才将其删除 到目前为止 这是我尝试过的 Dim LastCol As Long Dim i As Long With ThisWorkbook Sheets Sheet1 Fo
  • 从 MS Access 调用存储过程会导致错误 3146

    当我使用下面所示的代码从 MS Access 前端调用 SQL Server 存储过程时 它停止运行并抛出运行时错误 3146 这个存储过程在 SQL Server 中工作正常 但是当我从 MS Access 运行时 它首先工作 但突然停止
  • HTML/VBA Click 事件未触发

    这是我第一次在 StackOverflow 上发布问题 到目前为止 我已经能够通过 VBA 帮助论坛解决我的大部分问题 我的问题很简单 我有一个自动数据拉取 我需要在其中导出数据 我过去曾在这方面取得过成功 但这次略有不同 我尝试单击以生成
  • 如何将参数从 Excel/VBA 传递到 Rstudio 中的脚本

    我正在尝试使用 Rstudio 从 VBA 打开 R 脚本 同时将参数传递给 R 脚本 然后我可以使用 commandArgs 访问该脚本 该问题与此处描述的问题非常相似 WScript Shell 用于运行路径中包含空格且来自 VBA 的
  • VBA (Excel) 中 =Empty 和 IsEmpty() 有什么区别?

    我使用了以下 VBA 代码 Do While Cell i 1 lt gt Empty doing things i i 1 Loop 在 Excel 中迭代列 具有双精度 整数值 然后我发现了一种情况 每当单元格的值为 0 时 测试的计算
  • 如何将包含大量表格的 HTML 文档转换为 Word 文档?

    我创建了一个包含许多表格的 HTML 文档 如何将文档转换为Word 问题是 如果我用 Word 打开 HTML 文档 由于某种原因我会得到非标准的双行表格 table border 1 color 000000 cellpadding 0

随机推荐

  • 在资源路径中找不到 com/sun/jna/android-arm/libjnidispatch.so

    以下所有操作均在 Android Studio 中完成 我已成功编译并测试了 Android Watson Speech to Text 演示应用程序 然后 我创建了一个包含 Watson 相关 API 的库项目和一个带有引用 Watson
  • 如何向 Next.js 静态站点添加网站图标?

    我正在尝试将网站图标添加到 Next js 静态站点 但运气不佳 我尝试使用以下组件自定义文档 next document https nextjs org docs custom document https nextjs org doc
  • 如何连接字符串列表? [复制]

    这个问题在这里已经有答案了 对于你们大多数人来说 这可能非常容易解决 但我无法简单地解决这个问题str 周围可以吗 我想转换这个列表 A B C into A B C In 1 L A B C In 2 join L Out 2 A B C
  • Apache 中的手动内容压缩

    我需要 Apache 上的手动压缩解决方案 我的目标 在我的服务器上提供 gzip 编码的内容以及未压缩的内容 文件已预先压缩 并非所有文件都经过压缩 我想指定这些文件 并且选择不是基于类型 扩展名 的 提供许多内容类型 自定义内容类型 并
  • NuGet 不更新项目引用

    我最近将所有 Visual Studio 2013 项目迁移到 Visual Studio 2015 并按照本文档中记录的步骤进行操作article https docs nuget org consume package restore
  • 为什么在这种无竞争的情况下原子比锁慢得多?

    我使用原子而不是锁编写了一些东西 并且对它在我的情况下慢得多感到困惑 我编写了以下小型测试 include
  • 找不到版本“CXXABI_1.3.8”(...需要)[重复]

    这个问题在这里已经有答案了 当我在编译后运行程序时 出现以下错误 prog usr lib x86 64 linux gnu libstdc so 6 版本CXXABI 1 3 8 not found required by prog pr
  • getchar() 和 putchar() 是函数还是宏?

    我引用了两个可靠的信息来源 两者似乎对同一事物有不同的定义 http www cplusplus com reference clibr E2 80 A6 http www cplusplus com reference clibr E2
  • 如何实时更新glance小部件?

    有可能吗live update的数据Widget using Glance喷气背包组成 就像在数据库发生变化时更新数据一样 例如 当我使用时flow所以 Flow 应该能够更新小部件数据 对吗 我们可以更新点击操作 例如 class MyW
  • 是否可以在没有订阅密钥的情况下调用 Azure API Rest url?

    我只是希望能够使用 Azure Web Api 管理进行休息调用 而无需在 url 中传递订阅密钥 那可能吗 Azure API 管理允许匿名订阅 创建产品而不需要订阅 产品 gt 设置 gt 需要订阅 将您的 API 添加到此产品 htt
  • 是否有理由将数据库连接池与 ActiveRecord 一起使用?

    使用外部连接池有什么好处 我听说大多数其他应用程序都会为每个工作单元打开一个连接 例如 在 Rails 中 我认为这意味着每个请求都可以打开一个新连接 我假设连接池将使这成为可能 我能想到的唯一好处是它允许您拥有 1 000 个前端进程 而
  • 如何用 Java 检测类 Unix 操作系统?

    好的 我知道System getProperty os name 会给我正在运行的操作系统的名称 但这并没有多大帮助 我需要知道的是 我运行的操作系统是否是 类 Unix 操作系统 我不在乎它是 HP UX AIX Mac OS X 还是其
  • 如何在Spring集成中使用两个参数动态调用.handle()内部的重载方法?

    我想让我的 Spring 集成流程对于通过网关传入的不同类型的请求通用 并且我想要重载方法 并希望为通过网关传入的特定消息调用特定的重载方法 flow handle validatorService validateRequest 类似于上
  • Mac 版 Docker 上的 Xdebug 和 SSH 隧道

    我最近在 Docker 社区阅读了很多关于如何使用 Docker for Mac 在 PHPStorm 中调试 PHP 应用程序的帖子 所有这些都包含有用的信息 但在一处还没有看到有效的解决方案 这对我有用 Docker 容器内部 编辑 x
  • 我应该将什么值传递给 TimeZoneInfo.FindSystemTimeZoneById(String)?

    我想使用TimeZoneInfo FindSystemTimeZoneById String http msdn microsoft com en us library system timezoneinfo findsystemtimez
  • 了解 C 中函数指针的 typedef

    当我阅读其他人的代码时 我总是有点困惑 这些代码具有指向带有参数的函数的指针的 typedef 我记得不久前 当我试图理解用 C 编写的数值算法时 我花了一段时间才得到这样的定义 那么 您能否分享一下关于如何为函数指针编写良好的 typed
  • 如何实现stackpanel的点击事件

    我在这里检查了 stackpanel 类http msdn microsoft com en us library system windows controls stackpanel aspx http msdn microsoft co
  • PHP 代码确定用户是否被 301 重定向到我的网站

    PHP 是否可以知道用户是否已被 301 重定向到我的网站 So in myoldsite com我的 htaccess 文件中有一个 301 重定向到mynewsite com 我可以在其中放置一些 PHP 代码吗mynewsite co
  • FFmpeg 转换错误

    我正在尝试使用 FFmpeg 将视频转换为 webm 格式 我已经安装了此处列出的所有依赖项 http www videochat scripts com install ffmpeg mplayer flvtool2 yamdi x264
  • 将 WithEvents 与实现另一个类的类一起使用时出现运行时错误 459

    我正在 Word 中开发 VBA 项目 并且在使用实现另一个类的类时遇到处理事件的问题 我定义了一个空类 IMyInterface Public Sub Xyz End Sub Public Event SomeEvent 还有一个班级 M