谁帮我看一下

simpleonly 2003-08-24 09:25:35
刚开始学VB,今天做了个函数,死活调用不了
Sub com(a As Single)
MsgBox a
End Sub
Sub Compare(a As Single, b As Single)
If a < b Then
MsgBox b
Else
MsgBox a
End If
End Sub
Private Sub Form_Load()
Dim str As String
str = "asdfklsfdj"
Call prints(str)
Dim a, b As Single
a = 5.234
b = 6.4453
com (a)
Call Compare(a, b)
End Sub

我有两个问题:
1.com可以用,但把括号去掉就出错了,这跟msdn里讲的完全相反,怎么回事?
2.既然com可以用,但Compare(a,b)却不好使,加上Call也出错,都是说类型布匹配,这又是怎么回事呢?
...全文
35 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
pigpag 2003-08-24
  • 打赏
  • 举报
回复
总之是你声明的语句有问题所致。
Kyle_Chen() 已经说明白了
danielinbiti 2003-08-24
  • 打赏
  • 举报
回复
没有和msdn里讲的相反,
vb里默认是按址传送,
variant类型的变量,在按址传送时不会自动转换,所以需要加()使之成为表达式
你的 com (a)
()是表达式,不是单纯的括号
后面的a只要加上()也就能正常调用了.
Kyle_Chen 2003-08-24
  • 打赏
  • 举报
回复
Dim a, b as Single

应改为

Dim a as Single, b as Single

你的定义里面,a 是个Variant

7,762

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧