Visual Basic 4:预期数组

Fra*_*aaa 3 vb6

我一直在尝试在 Visual Basic 4(我知道,旧版本。但它需要与旧计算机一起工作)上做一个小项目,并且我有计算器的代码。这是用于 equals 命令的:

Private Sub Command12_Click()
    Dim sd As Integer
    Dim operator As Integer
    Dim result As Integer
    Dim Val As String

    If operator = 1 Then
        result = Val(num) + Val(txtOutput.Text)
        txtOutput.Text = result
    ElseIf operator = 2 Then
        result = Val(num) - Val(txtOutput.Text)
        txtOutput.Text = result
    ElseIf operator = 3 Then
        result = Val(num) * Val(txtOutput.Text)
        txtOutput.Text = result
    ElseIf operator = 4 Then
        result = Val(num) / Val(txtOutput.Text)
        txtOutput.Text = result
    ElseIf operator = 5 Then
        result = Val(num) Mod Val(txtOutput.Text)
        txtOutput.Text = result
    ElseIf operator = 6 Then
        result = Val(num) * Val(num)
        txtOutput.Text = result
    End If
End Sub
Run Code Online (Sandbox Code Playgroud)

问题是,一旦我运行它,它就会显示以下错误:
问题。

我尝试在互联网上搜索,我在网上找到的唯一解决方案是“关闭并重新打开 Visual Basic 并希望它能工作”,但它没有......有什么建议吗?

小智 5

正如其他人所说,直接导致错误的问题是语句Dim Val as String,但我没有看到哪里有人提到原因......

问题是,通过Diming 标识符Val,您已经有效地掩盖了内部Val()函数。稍后在原始代码中,当您引用标识符时,您将使用需要数组或函数的语法来执行此操作;由于您已将Dim其编辑为变量,因此解析器会假设它必须是数组变量,但事实并非如此 - 因此会出现错误Expected array。

简单修复 - 只需删除该Dim Val as String行即可。通过将语句移到...块txtOutput.Text = result之外,可以稍微缩短代码,这将改善大小和清晰度(但不会改善性能),但否则它将按原样工作。IfEnd If