Function 如何使VB6函数在从其他窗体调用时返回值?

Function 如何使VB6函数在从其他窗体调用时返回值?,function,vb6,Function,Vb6,我有一张表格叫Form1。在表格1中,我有以下代码- Dim details As clsDetails Set details = getDetials(1) ' This fails. It doesn't assign a value. getDetails函数在单独的模块中声明如下- Public Function getDetials(detailNumber As Integer) As clsDetails Dim details As clsDetails

我有一张表格叫Form1。在表格1中,我有以下代码-

Dim details As clsDetails

Set details = getDetials(1) ' This fails. It doesn't assign a value.
getDetails函数在单独的模块中声明如下-

Public Function getDetials(detailNumber As Integer) As clsDetails

    Dim details As clsDetails

    Select Case detailNumber
        Case "1"
            Debug.Print "Inside case1"

            Set details = getDetail1()

            Debug.Print details.comment ' This prints correctly.

    End Select

    Set getDetails = details

End Function

然而,当我执行上述代码时,Form1中的details变量并没有被设置,即使调用了getDetails函数并在其中正确地打印了细节。如何纠正此问题?

您是否定义了
选项Explicit
关键字

看起来你可能有打字错误。函数名为
getDetials
,但将结果设置为的变量是
getDetails
,因此未设置返回值


我修正了打字错误,一切正常。使用
选项Explicit
关键字将捕获这些类型的错误。

是否定义了
选项Explicit
关键字

看起来你可能有打字错误。函数名为
getDetials
,但将结果设置为的变量是
getDetails
,因此未设置返回值


我修正了打字错误,一切正常。使用
选项Explicit
关键字将捕获这些类型的错误。

我认为这可能是没有

检查表单顶部是否有Option Explicit(事实上到处都有)

您的类型错误声明了函数
getDetials
,但随后将名为
getDetails
的对象设置到新创建的类实际上是在创建一个新对象,并且根本没有设置函数return

插入显式选项,您将看到它不会编译


当您添加了Option Explicit everywhere时,请转到
工具
选项
编辑器
选项卡,并勾选写有
需要变量声明的框,这将确保在每次向项目添加新代码文件时都会添加它。

我认为这可能是没有

检查表单顶部是否有Option Explicit(事实上到处都有)

您的类型错误声明了函数
getDetials
,但随后将名为
getDetails
的对象设置到新创建的类实际上是在创建一个新对象,并且根本没有设置函数return

插入显式选项,您将看到它不会编译


当您添加了Option Explicit everywhere时,请转到
工具
编辑器
选项卡,并勾选写有
需要变量声明
的框-这将确保每次向项目添加新代码文件时都会添加该选项。

在何处键入Option Explicit?谢谢!!!哇!这确实是一个打字错误。不幸的是,VB创建了新的变量,并且没有检测到输入错误@CodeBlue--“Option Explicit”位于每个模块或类的顶部。@CodeBlue您应该更改VB设置,以便Option Explicit在默认情况下始终处于启用状态。菜单选项“工具”“选项”和“打开”需要在“编辑器”选项卡上声明变量。您可能对在何处键入Option Explicit感兴趣?谢谢!!!哇!这确实是一个打字错误。不幸的是,VB创建了新的变量,并且没有检测到输入错误@CodeBlue--“Option Explicit”位于每个模块或类的顶部。@CodeBlue您应该更改VB设置,以便Option Explicit在默认情况下始终处于启用状态。菜单选项“工具”“选项”和“打开”需要在“编辑器”选项卡上声明变量。你可能会对我感兴趣