You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VBA类模块公共变量传值异常:调用initialise后返回False

VBA类模块返回False问题的解决方法

核心错误原因

你遇到的返回False问题,本质是返回对象类型时未使用Set关键字。VBA中函数返回对象实例必须用Set赋值,否则VBA会自动将对象转换为布尔值,默认返回False。

修正后的代码示例

1. AR类模块代码

确保类模块的名称设置为AR(在VBA编辑器属性窗口修改类的Name属性):

Public name As String

' 自定义初始化子过程,接收字符串参数赋值给name
Public Sub Initialise(ByVal newName As String)
    Me.name = newName
End Sub

2. 标准模块中的ARTODSN函数

Function ARTODSN(inputName As String) As AR
    Dim objAR As New AR
    ' 调用自定义初始化过程传入参数
    objAR.Initialise inputName
    ' 必须用Set关键字返回对象实例
    Set ARTODSN = objAR
End Function

其他需要检查的点

  • 确认自定义初始化过程的名称拼写完全一致(比如不要一处写Initialise,另一处写成Initialize)
  • 确保初始化过程的参数类型匹配(比如传入的是字符串,不要传数值类型)
  • 类模块的name变量是公共可访问的,不要误设为私有

测试验证

在标准模块中添加测试过程,验证功能是否正常:

Sub TestARObject()
    Dim analysisResult As AR
    Set analysisResult = ARTODSN("SalesAnalysis")
    MsgBox analysisResult.name ' 应弹出"SalesAnalysis"
End Sub

内容的提问来源于stack exchange,提问作者Oliver Gericke

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 22:42:34