无法在不同项目的模块之间传递UDT

时间:2019-03-06 16:03:46

标签: excel vba project user-defined-types office-2007

我相信我要问的是一个限制,但我希望有一个令人满意的解决方案。

我正在处理多个文件/工作簿,并打算保持与数据关联的代码尽可能多。因此,我希望能够跨项目将一个过程链接到另一个过程。

我希望能够在链接时以用户定义的类型传递参数,但是出现了以下编译器错误:

仅公共对象模块中定义的用户定义类型可以强制于变体或从其强制或传递给后期绑定函数

我发现我只在使用 Application.Run 时遇到此问题,而在发出 Call 语句时却没有。但是,我无法通过 Call 跨项目工作。随后的阅读似乎证实了这一点。 (我确实读过 Application.Run 不能通过 ByRef ,而且很明显,UDT只能通过 ByRef )。所以看来我很烦。这是一些示例代码来说明这一点

Option Explicit

Public Type type1
  s As String
End Type

Public Sub main()

Dim t As type1

Application.Run "Book2!Freda", t

End Sub

Application。运行“ Book2!Freda”, t 是发生编译器错误的地方

0 个答案:

没有答案