只能将公共模块中定义的用户定义类型强制传递给或传递给后期绑定函数的变体

时间:2019-01-27 19:17:54

标签: arrays vb6

我有以下代码,其中我已声明一个数组或记录为Member,该Member类型由3个条目组成,即姓氏,姓氏和距离。我已经在“通话”功能上尝试了多种变体,但仍然遇到相同的错误:

Error

这是我的“整个”代码的简化格式,希望有人可以指出我在这里犯的任何愚蠢的错误,我只能假设参数传递或记录结构的声明中有什么东西?

Code

希望您可以为我的学校项目提供帮助。

2 个答案:

答案 0 :(得分:2)

就像消息说的那样。您正在使用私有类型,因此不能将其强制转换为Variant。

您可能希望Read_In_File Sub声明参数的类型,而不是使用默认的Variant类型。

Private Sub Read_In_File(ByRef Members As Member())

尽管在类中同时具有全局变量和同名参数是非常奇怪的。所以我不太确定你到底想完成什么。

答案 1 :(得分:2)

错误消息告诉您确切如何解决问题:

“只能将公共模块中定义的用户定义类型强制传递给或传递给后期绑定函数的变体”

在项目中添加一个名为MUserDefinedTypes或modUserDefinedTypes(或您使用的命名约定)的模块,并在其中声明您的公共用户定义类型。

我也同意Peter的观点,因为您在代码中有一些有趣的命名约定。不要将变量的名称与模块,类,窗体或类型的名称相同。只会惹麻烦。我建议一种简单的前缀方法。