标准模块中定义子过程的调用问题

ref_var 2010-01-16 03:55:30
主程序代码
Private Sub Command1_Click()
Form1.cls
MsgBox "请分别输入两个值:a与b,程序将比较它们的大小" & Chr(10) & "最后a将保存较大的数,b将保存较小的数", 0 + 64 + 0, "提示"
Dim a%, b%
a = Val(InputBox("a的值为", "输入数据"))
b = Val(InputBox("b的值为", "输入数据"))
Print "输入的数据为:"
Print "a="; a, "b="; b
Swap a, b
Print "计算后结果为:"
Print "a="; a, "b="; b
End Sub




标准模块中代码
Private Sub Swap(ByRef a%, ByRef b%)
If a < b Then
a = a + b
b = a - b
a = a - b
End If
End Sub

运行时说我 Swap子过程没定义,怎么回事啊?
...全文
112 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
熊孩子开学喽 2010-01-20
  • 打赏
  • 举报
回复
因为你写的是Private Sub Swap(ByRef a%, ByRef b%)
就是一个私有函数,模块外是不能访问的,要改成Public Sub才行
当然,Sub前不加任何前缀默认就是Public的,但是为了良好的变成习惯还是加上吧
yangzn76 2010-01-16
  • 打赏
  • 举报
回复
[Quote]LZ自言自语,挺逗!恭喜了。[/Quote]
chinaboyzyq 2010-01-16
  • 打赏
  • 举报
回复
你只要删除Private就可以了,不用加public
舉杯邀明月 2010-01-16
  • 打赏
  • 举报
回复
过程或函数要能够在被别的模块中,只能声明成 Public 的。
SYSSZ 2010-01-16
  • 打赏
  • 举报
回复
你在窗体模块调用标准模块的过程不用public能行吗!
Lorin_Luo 2010-01-16
  • 打赏
  • 举报
回复
LZ自言自语,挺逗!恭喜了。
fangenhong2010 2010-01-16
  • 打赏
  • 举报
回复
恩。是的。
ref_var 2010-01-16
  • 打赏
  • 举报
回复
发现换成
public
就成了

7,762

社区成员

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

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