gpt4 book ai didi

vb.net - 如何实例化 vba 类并调用 vb.net 中的方法?

转载 作者:行者123 更新时间:2023-12-02 06:35:26 25 4
gpt4 key购买 nike

正如我猜想的那样,我正在使用一个混合了表、VBA 模块和 VBA 类的 MS Access 应用程序。我打算将该应用程序迁移到 VB.NET。

但是这需要一些时间,我想利用自动化慢慢地将代码转移到VB.NET

现在我可以从 VB.NET 应用程序调用常规 SUB 和函数,但想知道是否有一种方法可以调用用户定义对象的方法。

我想做的粗略例子

VBA

'Class1
Public Sub Test()
Print "Hello world"
End Sub

'Module1
Public oClass1 as Class1
Public Sub Init()
Set oClass1 = New Class1
End Sub

VB.Net

' Left out the opening of the access db
oAccess.Run("Init")
oAccess.Run("oClass1.Test())

这可能吗?

最佳答案

Application.Run 方法需要一个包含“要运行的 Function 或 Sub 过程的名称”的字符串作为其第一个参数。但“oClass1.Test”两者都不是。

您可以通过创建另一个包装 oClass1.Test 方法的 VBA 过程来解决该问题,然后运行包装器过程...

oAccess.Run("Wrap_oClass1_Test") ' no parentheses after procedure name

Public Sub Wrap_oClass1_Test()
oClass1.Test
End Sub

我确认该方法在从 VBScript 调用时适用于示例代码的其余部分,因此我相信它也应该适用于 VB.Net。

蒂姆的 CallByName suggestion看起来也很有希望,但我没有测试过。

关于vb.net - 如何实例化 vba 类并调用 vb.net 中的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32145731/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com