为了账号安全,请及时绑定邮箱和手机立即绑定

VB中出现以下错误怎么解决?,这是什么情况,该怎么解决?

VB中出现以下错误怎么解决?,这是什么情况,该怎么解决?

Private Sub Command1_Click()Dim num1, num2 As Single 'num1,num2分别代表输入的第一个数和第二个数Dim strnum1, strnum2 As String 'strnum1,strnum2分别代表输入的第一个数和第二个数的字符串形式Dim firstnum As Boolean '判断输入是否是数字开头End SubPrivate Sub Form_Load()num1 = 0num2 = 0 '令num1和num2为0strnum1 = ""strnum2 = "" '令strnum1和strnum2为空字符串firstnum = True '确定为数字开头End SubPrivate Sub Command1_Click(index As Integer)Select Case index '用index作为判断分支的条件Case 0 To 9 '如果index是0到9If firstnum Then '输入为第一个数字的话strnum1 = Str(index) '实型转字符型firstnum = False '初赋值标志为假Else '输入不是第一个数字的话strnum1 = strnum1 + Str(index) '将输入的字符添加到原有字符串上End If '结束if块Label1.Caption = strnum1 '显示 '将字符串结果显示到标签上《还有其他语句,等待插入》End SelectEnd Sub
查看完整描述

2 回答

?
杨魅力

TA贡献1811条经验 获得超6个赞

你的问题有两个
1、
Command1_Click()和Command1_Click(index As Integer)是同一个事件,VB是事件型,要放弃过去代码驱动的思维。你可以将这两部分代码合并,并且辅以条件或选择性分支语句。
2、你在前五行的代码中犯了一个错误
Private Sub Command1_Click()
Dim num1, num2 As Single 'num1,num2分别代表输入的第一个数和第二个数
Dim strnum1, strnum2 As String 'strnum1,strnum2分别代表输入的第一个数和第二个数的字符串形式
Dim firstnum As Boolean '判断输入是否是数字开头
End Sub
你在这个事件中只是仅仅声明了几个变量,没有其他任何语句,他们在本段“End Sub”语句执行后就全部消亡了,因此没有意义。我猜测你的本意是申明一些局部变量,因此这里你只要将第一行“Private Sub Command1_Click()”和第五行“End Sub”删除就OK了。

查看完整回答
反对 回复 2021-12-06
?
守着一只汪

TA贡献1872条经验 获得超3个赞

程序中出现了两个 Private Sub Command1_Click
也就是说出现了两个同名称的子过程,这是不允许的,当点击按钮后,你让VB究竟执行哪个子过程啊?就好比有人说“我爸是李刚”后,两个人同时站起来说“我就是李刚”,这让VB情何以堪啊,呵呵。
另外,你这个Command1究竟是单个按钮,还是控件数组啊?看糊涂了
还有
Dim num1, num2 As Single
这样的变量定义方法也是错误的,要改为
Dim num1 As Single, num2 As Single
Dim strnum1 As String, strnum2 As String

下面是完整的修改结果:

Dim num1 As Single, num2 As Single '此三行定义全局变量
Dim strnum1 As String, strnum2 As String
Dim firstnum As Boolean

Private Sub Form_Load()
num1 = 0
num2 = 0 '令num1和num2为0
strnum1 = ""
strnum2 = "" '令strnum1和strnum2为空字符串
firstnum = True '确定为数字开头
End Sub

Private Sub Command1_Click(index As Integer)

Select Case index '用index作为判断分支的条件
Case 0 To 9 '如果index是0到9
If firstnum Then '输入为第一个数字的话
strnum1 = Str(index) '实型转字符型
firstnum = False '初赋值标志为假
Else '输入不是第一个数字的话
strnum1 = strnum1 + Str(index) '将输入的字符添加到原有字符串上
End If '结束if块
Label1.Caption = strnum1 '显示 '将字符串结果显示到标签上《还有其他语句,等待插入》
End Select

End Sub



查看完整回答
反对 回复 2021-12-06
  • 2 回答
  • 0 关注
  • 473 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信