Excel VBA 对象构造函数和析构函数

2023-12-29

我需要在 VBA 中创建一些需要相互引用的自定义对象,但我遇到了一些问题。

首先 - VBA 中的对象构造函数如何工作?有构造函数吗?

第二 - 有析构函数吗? VBA 如何处理对象生命周期的结束?如果我有一个引用其他对象的对象(这是它们唯一的引用),那么我可以将其设置为 Nothing 并完成它,还是会产生内存泄漏?

这种准面向对象的东西只是有点令人恼火。


VBA 支持类模块。它们有一个作为构造函数的 Class_Initialize 事件和一个作为析构函数的 Class_Terminate 事件。您可以定义属性和方法。 我相信 VBA 使用引用计数来实现对象生命周期。这就是为什么您会在该类型的代码中看到很多 Setwhat=Nothing 的原因。在您的示例中,我认为它不会泄漏任何内存。但您需要小心循环引用。

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

Excel VBA 对象构造函数和析构函数 的相关文章

  • excel 2010刷新BackgroundQuery中运行时错误1004

    我正在尝试用 vba 编写一个脚本 用于将多个文本文件导入 Excel 一张纸 然后将它们绘制在一张图表上 我面临一个问题刷新后台查询命令并出现 1004 运行时错误 我怎样才能解决它 谢谢 埃亚勒 这是我的代码 Sub fring1 Di
  • Spring.NET 和构造函数拦截器

    我正在尝试在构造时对对象进行一些 AOP 并找到了 IConstructorInterceptor 这对于我想要的东西来说是完美的 但它似乎不起作用 http jira springframework org browse SPRNET 2
  • VBA 中的多线程

    这里有人知道如何让VBA运行多线程吗 我正在使用 Excel 无法用 VBA 本地完成 VBA 构建在单线程单元中 获得多个线程的唯一方法是使用 VBA 之外的其他具有 COM 接口的东西构建 DLL 并从 VBA 调用它 信息 OLE 线
  • 创建动态多维对象/数组

    我正在尝试使用 JS 创建一个多维数组 以便我可以通过 Ajax 调用 PHP 来发布一些数据 这可能很简单 但我对 JS 的了解很少关于这个具体的事情 这是带有代码的 JSFiddle http jsfiddle net k5Q3p 我想
  • VBA 完成 Internet 表单

    我正在寻找将 Excel 中的值放入网页的代码 Sub FillInternetForm Dim IE As Object Set IE CreateObject InternetExplorer Application IE naviga
  • VBA 中 AND 函数如何工作?

    如果这是一个愚蠢的问题 我很抱歉 但是 Excel VBA AND 函数是否检查其中的每个条件然后继续 或者在第一个 FALSE 条件处停止而不检查其他条件 我想知道出于优化目的 但到目前为止在网上没有找到任何相关信息 提前致谢 示例 如果
  • VBA ByRef 参数类型不匹配

    最初在我的主代码部分中 我有一个丑陋的 if 语句 尽管它会运行丑陋 我决定将其设为我要调用的函数 这导致我收到错误 编译错误 ByRef 参数类型不匹配 我的假设是该函数需要正确引用 尽管我一直在阅读文档并且不明白为什么 gt 声明 Sh
  • 使用输入作为显示日期的基础

    我需要一种方法来使用用户窗体上的输入来确定将在输出上显示的日期 这是我的代码 If StatusBox Value lt 23 59 And ShiftCode Value AP Then Cells emptyRow 8 Value Da
  • NodeJS:调用 global.gc() 不会将内存减少到最低限度?

    为了调查内存泄漏 我设置了一条触发的路线global gc 在每个POST gc app post gc function req res global gc 但是 我注意到 如果我发送垃圾邮件此请求 每次都会越来越多地减少内存使用量 不应
  • 为什么 new String("Hello") 在 C# 中无效?

    制作背后的逻辑 原因是什么 String s new String Hello World 在 C 中非法 错误是 string String char 的最佳重载方法匹配有一些无效参数 我对 API 文档不感兴趣 我感兴趣的是为什么这是非
  • 使用 split 函数到数组中会导致编译错误:无法分配给数组

    我正在尝试使用split 函数根据给定名称字符串中的空格拆分名称 当尝试编译我在下面编写的代码时 出现编译错误 无法分配给数组 我几乎从这里复制了微软的示例 https support microsoft com en us kb 2662
  • 在perl中调用基本构造函数

    从 Perl 中的类构造函数调用基本构造函数的正确方法是什么 我见过这样的语法 my class shift my a shift my b shift my self class gt SUPER new a b return self
  • dgemm_ 中的内存泄漏

    我目前正在开发一个应用程序 其中涉及大量对 blas 例程的调用 定期检查我发现的内存泄漏 我正在丢失字节dgemm http www netlib org blas dgemm f称呼 调用看起来像这样 I want to multipl
  • 冰冻日食

    我使用 Eclipse 进行 PHP 和 Java Android 编程 有时使用 Python 不幸的是 Eclipse 现在经常冻结 通常 当我在 PHP 中编写这个括号 来定义数组时 Eclipse 就会冻结 我必须手动关闭它并重新开
  • Valgrind 输出中的错误摘要?

    我看过一些关于 valgrind 的帖子 但没有一篇帖子帮助我理解 valgrind 输出的解释 我用 valgrind 运行了两个程序 都有内存泄漏 测试 1 的示例输出 20422 LEAK SUMMARY 20422 definite
  • 检查空参数的最佳方法(保护子句)

    例如 您通常不希望构造函数中的参数为空 因此看到类似的内容是很正常的 if someArg null throw new ArgumentNullException nameof someArg if otherArg null throw
  • 从Excel单元格中提取固定长度的数字

    一些类似名称的线程 但仍然无法解决我的问题 我需要从 Excel 字符串中提取固定长度的 NUMBER 值 在我的场景中为 8 位数字 为此目的提供了以下 Excel 公式 MID A1 FIND SUBSTITUTE SUBSTITUTE
  • 字符串在换行符处拆分

    我在 MS Access 表单上有一个文本框 用户将从 Excel 电子表格中复制一列数字到其中 我需要获取此输入并将其用作参数来构建查询 我的代码看起来像这样 Dim data as variant Dim input as String
  • 勾选或取消勾选复选框时输入时间戳

    我有一个 3 行 7 列的工作表 A1 G3 A 和 B 列有 6 个复选框 A1 B3 A 列和 B 列中的框分别链接到 C 列和 D 列 E 列和 F 列中的单元格只是分别复制 C 列和 D 列 实时E1细胞是 C1 and F3细胞是
  • 在 Excel 中查找结果将行复制到另一张工作表

    我需要一些帮助将数据从一个 Excel 工作表复制到另一个 例如 样本数据 A B C 1 aaa bbb ddd 2 bbb ccc eee 2 bbb ccc eee 3 ccc fff rrr 4 ccc fff ttt 5 ddd

随机推荐

  • 为什么我无法连接到 Gremlin 服务器?

    Abstract 我正在尝试在 Docker v1 13 0 中设置 Titan Cassandra Gremlin Server 堆栈 我面临的问题是应用程序尝试在默认端口上连接到 Gremlin Server8182正在报告错误 详细信
  • Java String.split 是否有可能返回 null String[]

    是否有可能split返回 nullString 我很好奇 因为我想在我的代码中尽可能地采取防御措施 而不进行不必要的检查 代码如下 String parts myString split w 在使用之前我需要执行空检查吗parts后分裂 它
  • Android Webview:有没有办法知道之前的URL是什么?

    有没有办法访问历史记录 以便我知道用户按下后退按钮 调用 WebView goBack 时正在访问哪个 URL String historyUrl myWebView WebView findViewById R id webViewCon
  • CLR 检测到无效程序

    需要任何帮助 想法来解决这个问题 我们正在开发一个应用程序 该应用程序可以调用 SAP 以使用 ERPConnect 发布一些数据 我们在 WCF 服务的实体框架调用之一中遇到以下问题 我们使用的是 NET4 0 Win 2008 Serv
  • 使用 purrr 地图打印 ggplot

    我想创建ggplots for numeric cols反对我的response variable 这是可重现的代码 test mpg gt select if is numeric gt dplyr select year gt nest
  • Java char Array - 删除元素

    在 Java 中 我想从 char 数组中删除某些元素 因此它会执行以下操作 char Array1 h m l e l l Array1 character index 2 to character index 5 如何才能做到这一点 在
  • JIRA 与 TortoiseSVN 集成

    谁能指定将 JIRA 与 TortoiseSVN 集成以跟踪问题详细信息的方法吗 URL部分应该指定什么URL 还需要哪些其他参数 您需要在 JIRA 方面做些什么来确保集成吗 在阅读有关该主题的 TortoiseSVN 文档时 我遇到了很
  • 如何在 Amazon-S3 和 Google Cloud Storage 之间执行文件完整性检查

    我正在将数据从 Amazon S3 迁移到 Google Cloud Storage 我已经使用复制了我的数据gsutil https cloud google com storage docs gsutil gsutil cp R s3
  • 按所包含对象的属性拆分 Java ArrayList

    我有一个ArrayList包含具有日期值的对象 现在我想设法创建一个新的ArrayList包含主对象中所有对象的每一年ArrayList其日期值具有相同的年份 因此 2010 年的所有对象都放在一个列表中 1999 年的所有对象都放在另一个
  • winform中的activex

    我需要在我的 Net WinForm 中放入一些activeX 提供商向我发送了 tlb 和 com dll 这够了吗 怎么把它放到winform上呢 这应该足够了 您需要在计算机上注册该 dll 将其添加到 dev studio 工具箱
  • 移动远程分支

    After 重写提交树以重命名作者并更改电子邮件 https stackoverflow com questions 750172 how do i change the author of a commit in git 我的本地存储库和
  • 出于未知原因读取串行端口块

    我正在尝试在 Linux 下使用 termios 框架通过 UART usbserial 连接非接触式智能卡读卡器 该代码在 PC 上运行良好 但当我交叉编译并在 ARM9 目标上尝试时 它能够打开设备 甚至可以将命令写入设备 但读取命令会
  • javascript 对 HTML 元素进行排序

    我正在尝试排序li元素并得到意想不到的结果 我需要排序三遍才能正确 我哪里搞错了 javascript var sort by name function a b return a innerHTML toLowerCase gt b in
  • NavigationLink 在按钮内不起作用

    我添加了一个 ToolBarItemGroup 和一个应该导航到另一个视图的按钮 但在这种情况下 带有 navigationLink 的按钮不起作用 这是因为我无法将 navigationLink 添加到 toolbar VStack Na
  • 带有蒙版的 svg 在 chrome 上看不到

    我正在尝试使用 React 动态创建的一些 svg 路径进行掩码 问题是生成的 html 代码无法立即在 Chrome 和 Safari 上正确呈现 调整浏览器窗口大小或从检查器中选中 取消选中样式属性时会出现正确的结果 我觉得问题出在其中
  • Google Cloud LB:更改“服务器错误”默认 html 页面

    默认情况下 如果负载平衡找不到将流量重定向到的后端 例如 如果所有可用后端都已关闭 则会显示以下 html 页面 成绩单 错误 服务器错误 服务器遇到临时错误 无法完成您的请求 请在 30 秒后重试 我想使用我自己的静态 html 页面 我
  • 替换 IE 的 Twitter Bootstrap 导航栏中的背景

    我正在尝试用我自己的图像替换 Twitter Bootstrap 导航栏的背景图像 它适用于 Chrome Firefox 和 Safari 但不适用于 Internet Explorer 我对 IE 缺少什么 在IE中仍然是纯黑色 nav
  • 如何签署 XLA(Excel 加载项)?

    可以通过代码做到这一点吗 也许有可能 但据我所知 任何预构建的 API 都无法做到这一点 如果您可以从代码中签署代码 它将允许自我修改保持签名状态 这将是一个安全问题 现在 VBA 确实允许二进制读 写 您可以在应用程序上安装一个监视器 观
  • vb.net 无法 Console.SetWindowPosition

    我正在 VB NET 中创建 Windows 控制台应用程序 但无法设置相对于屏幕的窗口位置 简而言之 我想要一个使窗口居中于屏幕的功能 我尝试过使用Console SetWindowPosition w h 方法和Console Wind
  • Excel VBA 对象构造函数和析构函数

    我需要在 VBA 中创建一些需要相互引用的自定义对象 但我遇到了一些问题 首先 VBA 中的对象构造函数如何工作 有构造函数吗 第二 有析构函数吗 VBA 如何处理对象生命周期的结束 如果我有一个引用其他对象的对象 这是它们唯一的引用 那么