VBA 中的公共对象模块是什么?

2023-11-25

我试图在 VBA 中尽可能接近函数指针/抽象类。

我有一堂课叫VerificationManager并验证几个电子表格中的一堆单元格是否匹配。根据所使用的信息和电子表格,这将以不同的方式完成。

我希望能够通过使用以下命令在字符串中指定要调用的方法来使代码可重用Application.Run功能。这样我就可以重写发生变化的函数。

现在,如果我使用 Java 或 C#,我将能够扩展抽象类并重写函数的内部结构。如果我使用 JavaScript,我可以将函数存储在变量中,并将变量传递给类并从那里调用它。

在我的类中,我有一个名为“verificationModule”的公共属性,我将其设置为我希望它调用的函数的名称。

Sub VerifyWorkLocations(empLoc As EmployerLocation)
...
    For i = 0 To empLoc.numOfEmp
        Application.Run verificationModule, empLoc.taxdescmatch, empLoc.employees(i)
    Next i
...
End Sub

但是,当我尝试打电话时Application.Run我收到以下错误:

编译错误:

“只有在公共对象模块中定义的用户定义类型才可以 强制到变体或从变体强制转换或传递到后期绑定函数”

我已经尝试将我的用户定义类型放入Class Module但它基本上说类模块是类型的错误位置。


该错误来自成熟的 VB,您可以在其中创建一个 ActiveX dll 项目,在其中创建一个公共类并将 UDT 放入该类中。

在 VBA 中,当您需要强制转换为变体或强制转换为变体时,可以使用类而不是 UDT。

因此,只需声明一个包含 UDT 中所有字段的类,然后删除 UDT。

或者,在 VB6 中创建一个仅包含类型声明的 DLL,并从 VBA 引用该 DLL。或者,如果您熟悉 IDL,只需直接创建 TLB 文件即可。

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

VBA 中的公共对象模块是什么? 的相关文章

  • 如何高效打开巨大的excel文件

    我有一个 150MB 的单页 Excel 文件 在一台非常强大的机器上使用以下命令打开大约需要 7 分钟 using python import xlrd wb xlrd open workbook file sh wb sheet by
  • VB.NET 中的“阴影”与“覆盖”

    这两个关键词有什么意义Shadows http msdn microsoft com en us library 1h3wytf6 aspx and 覆盖 http msdn microsoft com en us library k777
  • 从网站上的表格中抓取数据,而无需搜索标签

    这是这个问题的延续使用 InStr 搜索引号 空格 冒号等 https stackoverflow com questions 52673819 using instr to search for quotes spaces colons
  • 使用 R Shiny 从 XLConnect 下载 Excel 文件

    有没有人尝试过使用 R Shiny 中的下载处理程序通过 XLConnect 下载新创建的 Excel 文件 在 ui R 中有一行不起眼的行 downloadButton downloadData Download 在 server R
  • 将范围内的每个值乘以常数,但跳过空白单元格

    我需要一个简单快速的解决方案 用于将范围内的所有值乘以 VBA 代码中的数值 我知道这个解决方案 将整个范围乘以值 https stackoverflow com questions 18990541 multiply entire ran
  • xlwings: 删除一个列 | Excel 中的行

    如何删除 Excel 中的一行 wb xw Book Shipment xlsx wb sheets Page1 1 range 1 1 clear clear 用于删除内容 我想删除该行 我很惊讶 clear 函数有效 但 delete
  • excel 2010刷新BackgroundQuery中运行时错误1004

    我正在尝试用 vba 编写一个脚本 用于将多个文本文件导入 Excel 一张纸 然后将它们绘制在一张图表上 我面临一个问题刷新后台查询命令并出现 1004 运行时错误 我怎样才能解决它 谢谢 埃亚勒 这是我的代码 Sub fring1 Di
  • 当时间为 00:00 时,Pandas 读取 excel 返回类型对象

    在更新版本的 Pandas 中 我使用的是 1 2 3 当从 Excel 文件读取时间时 时间为 00 00 00 时会出现问题 下面的脚本 其中 filepath 是我的 Excel 文件的路径 其中包含一个标题名为 Time 的列 im
  • Excel 工作簿 - 从 C# 读取速度非常慢?

    正在尝试读取 Excel 工作簿 发现读取 3560 行 7 列的工作表需要很长时间 大约需要 1 分 17 秒 我所做的就是循环遍历整个工作表并将值存储在列表中 这是正常现象 还是我做错了什么 static void Main strin
  • VBA Shell 并等待退出代码

    我正在打包一个办公应用程序 VBA 它调用 C 控制台应用程序来执行应用程序 大型模拟程序 的一些繁重工作 我希望能够让 VBA 应用程序等待控制台应用程序完成并从控制台应用程序检索退出代码 我已经能够做到前者 但尚未能够从应用程序中检索退
  • 覆盖默认标识符生成策略对关联没有影响

    交响乐 2 7 2 学说 ORM 2 4 7 MySQL 5 6 12 PHP 5 5 0 我有一个具有自定义 ID 生成器策略的实体 它工作完美 在某些情况下 我必须使用 手工制作 的 ID 来覆盖此策略 当主实体在没有关联的情况下被刷新
  • 如何让VLOOKUP在VBA中选择到最低行?

    希望自动在单元格中插入 VLOOKUP 公式 录制宏时 我指示它使用相同的公式填充下面的列 效果很好 但是 当 VLOOKUP 搜索的表发生变化 更多或更少的行 时 就会出现问题 在记录时 VLOOKUP 下降到表中的最后一行 273 但是
  • Office excel将CORS请求作为跨域请求

    我正在尝试从我的 Excel 插件发出跨域请求 正如这里所建议的 http dev office com docs add ins develop addressing same origin policy limitations http
  • 如何找到特定程序的安装目录?

    我已经成功地编写了一些用于工作的 VBA 宏 这些宏基本上创建了一个数据文件 将其提供给一个程序并对该程序的输出进行后处理 我的问题是程序安装路径是硬编码在宏中的 并且安装在我同事的计算机上可能会有所不同 我首先想到的是 我可以从每个人那里
  • 在合并的单元格中选择、插入照片并将其居中

    我是一名研发面包师 正在为我的团队制作食谱模板 模板中有照片 但我需要轻松地允许他们单击一个按钮 打开照片的文件选择器 然后将该照片放在合并的单元格中 我其实不太擅长做这个 Sub InsertPhotoMacro Dim photoNam
  • 我应该使用课程吗? (Python)

    我正在尝试编写一个包含一些数学函数的小型 Python 模块 例如 它可能包含如下函数 def quad x a b c return a x 2 b x c 您可能会注意到它包含几个参数 即a b c 除了变量x 现在 如果我将其放入文件
  • 我可以使用子接口重新编译公共 API 并保持二进制兼容性吗?

    我有一个公共 API 在多个项目中多次使用 public interface Process
  • Excel 数字缩写格式

    这是我想要完成的任务 Value Display 1 1 11 11 111 111 1111 1 11k 11111 11 11k 111111 111 11k 1111111 1 11M 11111111 11 11M 11111111
  • 输入新行并复制上面单元格中的公式

    我正在尝试创建一个 Excel 宏来执行以下操作 在文档末尾输入新行 复制上面单元格中的公式 到目前为止我有这个 Sub New Delta Go to last cell Range A4 Select Selection End xlD
  • 检查未绑定控件是否具有值的正确方法

    简单场景 一个表单和一个文本框 未绑定 Text1 If lt gt Text1 Then MsgBox Not Empty End If 上面的代码有效 表达方式 lt gt Text1如果文本框包含字符 则计算结果为 True 无论文本

随机推荐

  • JavaScript 内存限制

    JavaScript 应用程序可以存储的数据量是否有最大限制 我想这是由浏览器处理的 每个浏览器都有其局限性 如果没有限制 是否会创建页面文件 如果这样的话 那不是没有安全感吗 在 Chrome 和 Chromium OS 中 内存限制由浏
  • 如何找到从一个向量到另一个向量的正确旋转?

    我有两个对象 每个对象有两个向量 法向量 向上向量 就像这张图片上的那样 向上向量垂直于法向量 现在我想找到从一个对象到另一个对象的唯一旋转 该怎么做 我有一种方法可以找到一个向量到另一个向量之间的旋转 并且它有效 问题是我需要照顾两个向量
  • R:将数据框列表合并为单个数据框,添加带有列表索引的列

    这个问题非常类似于this one 它用于将数据帧列表组合成单个较长的数据帧 但是 我想通过添加带有列表索引 id 或源 的额外列来保留数据来自列表中哪个项目的信息 这是数据 借用链接示例中的代码 dfList lt NULL set se
  • API 分享计数 Facebook Graph 已弃用?

    从今天起 当我尝试获取份额数时 答案是 v2 9 及更高版本不推荐使用 share 字段 前与 Without 字段 分享显示json内容但是没有股票价值 我需要从 URL 获取 Facebook 的分享计数 API 确实发生了变化 应该是
  • 在 Ruby 中,“new”和“initialize”之间的关系是什么?初始化时如何返回nil?

    我想要的是 obj Foo new 0 gt nil or false 这不起作用 class Foo def initialize val return nil if val 0 end end 我知道在 C C Java C 中 我们不
  • 将 C 与 Android ndk 一起使用

    我正在尝试开发一个 Android 项目 该项目可以从 Java 代码到本机 C 代码进行简单的调用 我参考此链接作为我的指导 http mobile tutsplus com tutorials android ndk tutorial
  • numpy 中是否有 arange/linspace 的多维版本?

    我想要一个 2d NumPy 数组 x y 的列表 其中每个 x 位于 5 4 5 4 3 5 3 5 4 4 5 5 中 y 也相同 我可以 x np arange 5 5 1 0 5 y np arange 5 5 1 0 5 然后迭代
  • 为什么我们必须在react-native中的promise链的末尾调用`.done()`?

    In the 反应本机教程它说 请注意 我们在承诺链的末尾调用 done 始终使 一定要调用done 否则抛出的任何错误都会被吞掉 fetchData function fetch REQUEST URL then response gt
  • 在Java流中,peek真的只能用于调试吗?

    我正在阅读有关 Java 流的内容 并在阅读过程中发现新的东西 我发现的新事物之一是peek 功能 我在 peek 上读到的几乎所有内容都说它应该用于调试您的 Streams 如果我有一个流 其中每个帐户都有一个用户名 密码字段以及一个登录
  • 如何应用新的 Emacs C 样式来重新格式化所有源文件?

    我想使用 emacs 的 Google 格式化功能重新格式化所有源文件 google c style el see here 如何立即将此功能应用于我的所有源文件 以便它们都按照 Google 风格正确格式化和缩进 这有几个部分 您需要想出
  • 如何制作一个在 Windows 中无法被杀死的程序?

    我们正在制作一个供公司内部使用的 Jabber 客户端 我们需要以某种方式捕获用户试图终止程序的时刻 以实际重新启动它 或者只是让用户无法终止客户端 这可能吗 我们的 Jabber 客户端将用 C 编写 我将如何实现这一目标 你所要求的意义
  • Java 中私有静态嵌套类内的访问修饰符

    我在 Java 中有一个 私有静态 嵌套类 此类中的字段和方法的访问修饰符有何意义 我已经尝试过公共和私人 对我的申请没有影响 public class MyList
  • 删除域后的尾部斜杠

    这是我的 htaccess file
  • LINQ 的通配符搜索

    我想知道是否可以使用 LINQ 进行通配符搜索 我看到 LINQ 有 Contains StartsWith EndsWith 等 如果我想要 Test if it work 之类的东西怎么办 Regards 您可以使用SqlMethods
  • 在服务器上部署一段时间后无法连接数据库

    我将我的战争文件上传到我的服务器上 它在部署后完美运行 但一段时间后它显示异常 我正在使用 struts2 和 hibernate my hibernate cfg xml is
  • GLFW 3 已初始化,但还没有?

    我正在努力使用 GLFW 3 函数 glfwCreateWindow 创建窗口 我设置了一个错误回调函数 它几乎只是打印出错误号和描述 并且根据 GLFW 库尚未初始化 即使 glfwInit 函数刚刚返回成功 这是我的代码的摘录 Erro
  • ImageView 上的边框半径和阴影

    我想在 JavaFX 中应用边框半径和阴影 在 CSS3 中它将是 box shadow rgba 0 0 0 0 8 0 0 10px border radius 3px 现在我想在 JavaFX 中实现这一点 但即使是 border r
  • 必须使用mockbean而不是自动装配

    我用的是弹簧靴2 我创建了一个基本测试 RunWith SpringJUnit4ClassRunner class public class VehicleServiceImplTest private VehiculeServiceImp
  • 了解 ARKit 中的坐标空间

    我已阅读所有有关的 Apple 指南ARKit 并观看了一个全球开发者大会视频 但我不明白坐标系如何绑定到 一个真实的世界 A device 3D 场景 相互连接 我可以添加一个对象 例如SCNPlane let stripe SCNPla
  • VBA 中的公共对象模块是什么?

    我试图在 VBA 中尽可能接近函数指针 抽象类 我有一堂课叫VerificationManager并验证几个电子表格中的一堆单元格是否匹配 根据所使用的信息和电子表格 这将以不同的方式完成 我希望能够通过使用以下命令在字符串中指定要调用的方