在Excel VBA上返回用户定义的类型

时间:2010-09-30 22:29:02

标签: excel-vba vba excel

我一直在使用Excel VBA,但我从未接受过任何正式的培训。我在XLSM模块上有以下代码:

Public Type ks_solution
    W As Integer
    NF As String
    ID As Integer
End Type

Public Sub MySub()
    //does some things
    MyKSSolution = MyFunction(params)
End Sub

Public Function MyFunction(params) as ks_solution
    //does stuff and returns a ks_solution
End Function

当我尝试运行代码时,VBA编译器返回“只有公共对象模块中定义的用户定义类型才能被强制转换为变体或传递给后期绑定函数”错误。

非常感谢任何帮助。

- 由里

1 个答案:

答案 0 :(得分:3)

呃,没关系。看起来问题出在var声明中。

我想

Dim v1, v2 as ks_solution

相同
Dim v1 as ks_solution, v2 as ks_solution
但显然,事实并非如此。在第一种情况下,v1被声明为Variant。抱歉,慢慢来。