我一直在尝试在 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
| 归档时间: |
|
| 查看次数: |
191 次 |
| 最近记录: |