String “错误”;赋值左侧的函数调用必须返回Variant或Object;

String “错误”;赋值左侧的函数调用必须返回Variant或Object;,string,function,vb6,return,String,Function,Vb6,Return,下面是一段代码片段。我得到的错误是“赋值左侧的函数调用必须返回变量或对象”。我将函数return更改为variant数据类型,但这没有帮助 我试图使用函数调用生成一个随机字符串。因为它有大量的子表,所以我希望将这些表像这样分开来维护,而不是在一个长长的代码系列中维护,以便于维护 如果这是不可行的,有人能建议一种替代方法吗 Private Function GenAstStrategicResouce() As Variant Dim X As Integer X = Int(

下面是一段代码片段。我得到的错误是“赋值左侧的函数调用必须返回变量或对象”。我将函数return更改为variant数据类型,但这没有帮助

我试图使用函数调用生成一个随机字符串。因为它有大量的子表,所以我希望将这些表像这样分开来维护,而不是在一个长长的代码系列中维护,以便于维护

如果这是不可行的,有人能建议一种替代方法吗

Private Function GenAstStrategicResouce() As Variant

    Dim X As Integer

    X = Int((200 * Rnd) + 1)

    If X < 10 Then
        GenStrategicResouce = "Bose-Einstein Condensates"
    ElseIf X < 20 Then
        GenStrategicResouce = "Diamonds"
    End If

End Function
私有函数genastStrategicSouce()作为变量
作为整数的Dim X
X=Int((200*Rnd)+1)
如果X<10,则
GenStrategicResouce=“玻色-爱因斯坦凝聚体”
ElseIf X<20那么
GenStrategicResouce=“钻石”
如果结束
端函数

声明函数以返回字符串

您还错误地在返回中键入了函数名GenStrategicResouce,而不是GenAstStrategicResouce

Private Function GenAstStrategicResouce() As STRING

    Dim X As long

    X = Int((200 * Rnd) + 1)

    If X < 10 Then
        GenAstStrategicResouce = "Bose-Einstein Condensates"
    ElseIf X < 20 Then
        GenAstStrategicResouce = "Diamonds"
    End If

End Function
私有函数genastStrategicSouce()作为字符串
暗X等长
X=Int((200*Rnd)+1)
如果X<10,则
GenAstStrategicResouce=“玻色-爱因斯坦凝聚体”
ElseIf X<20那么
GenAstStrategicResouce=“钻石”
如果结束
端函数

它不能返回任何其他内容,因此不需要变量(通常用于返回CVErr或数组)。

声明函数以返回字符串

您还错误地在返回中键入了函数名GenStrategicResouce,而不是GenAstStrategicResouce

Private Function GenAstStrategicResouce() As STRING

    Dim X As long

    X = Int((200 * Rnd) + 1)

    If X < 10 Then
        GenAstStrategicResouce = "Bose-Einstein Condensates"
    ElseIf X < 20 Then
        GenAstStrategicResouce = "Diamonds"
    End If

End Function
私有函数genastStrategicSouce()作为字符串
暗X等长
X=Int((200*Rnd)+1)
如果X<10,则
GenAstStrategicResouce=“玻色-爱因斯坦凝聚体”
ElseIf X<20那么
GenAstStrategicResouce=“钻石”
如果结束
端函数

它不能返回任何其他内容,因此不需要变量(通常用于可能返回CVErr或数组)。

它是
函数genastStrategicSouce
,但您正在向
genstrategicSouce
赋值。将
Option Explicit
放在模块的开头,以帮助捕获这样的错误。“资源”是什么?重点是,打字错误是一个杀手。我同意
Option Explicit
有帮助,但您可能需要提高显示器的DPI设置。这提醒了我,我需要自己买一副新眼镜。这是
功能GenastStrategicSouce
,但你在给
GenstrategicSouce
分配任务。将
Option Explicit
放在模块的开头,以帮助捕获这样的错误。“资源”是什么?重点是,打字错误是一个杀手。我同意
Option Explicit
有帮助,但您可能需要提高显示器的DPI设置。这提醒了我,我需要自己买一副新眼镜。另外,记得在第一次使用
Rnd
之前调用
Randomize()
,以便最初为随机数生成器设定种子,否则,结果实际上不会是随机的。另外,记得调用
Randomize()
在首次使用
Rnd
对随机数生成器进行初始种子设定之前,否则,结果实际上不会是随机的。