請教:傳值問題!

scott21cn 2002-03-08 10:04:12
Private Sub Command1_Click()
Dim aa As Integer
aa = 1
NumAdd (aa)
MsgBox aa

End Sub

Private Function NumAdd(ByVal Num As Integer)
Num = Num + 1
End Function

為何aa 不等于2,怎樣aa才等于2?
...全文
52 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
SenseKey 2002-03-08
  • 打赏
  • 举报
回复
Private Sub Command1_Click()
Dim aa As Integer
aa = 1
*** NumAdd aa ****
MsgBox aa

End Sub
注意打***的写法
这下应该可以了吧

HowardOK 2002-03-08
  • 打赏
  • 举报
回复
这么简单呀!你试试这样吧!
Private Sub Command1_Click()
Dim aa As Integer
aa = 1
NumAdd (aa)
MsgBox NumAdd(aa)
' 或上面两句变为:
' aa=NumAdd (aa)
' MsgBox aa
End Sub

Private Function NumAdd(Num As Integer) As Integer
Num = Num + 1
NumAdd = Num
End Function
SenseKey 2002-03-08
  • 打赏
  • 举报
回复
Private Sub Command1_Click()
Dim aa As Integer
aa = 1
NumAdd aa
MsgBox aa

End Sub

Private Function NumAdd(ByRef Num As Integer)
Num = Num + 1
End Function
builderr 2002-03-08
  • 打赏
  • 举报
回复
你a值无论如何改,都是num在加一呀
设一下静态变量,然后byref
markjone 2002-03-08
  • 打赏
  • 举报
回复
static a as integer
必须设置成静态变量!
vicon 2002-03-08
  • 打赏
  • 举报
回复
按值傳遞就是說只將值傳遞過去了.
NUmAdd中處理的僅僅只是一個'1'而已,
按地址傳遞就是說將 'aa' 傳遞過去.

你可以這么理解.
scott21cn 2002-03-08
  • 打赏
  • 举报
回复
可是不管是用 ByVal 或 ByRef 打印aa結果都是1,為什么?
vicon 2002-03-08
  • 打赏
  • 举报
回复
Private Function NumAdd(ByRef Num As Integer)
Num = Num + 1
End Function

jinyt 2002-03-08
  • 打赏
  • 举报
回复
Private Function NumAdd(ByRef Num As Integer)
Num = Num + 1
End Function

human_2 2002-03-08
  • 打赏
  • 举报
回复
Private Function NumAdd( Num As Integer)
byval 是按值
byref 是按地址 (缺省)
SenseKey 2002-03-08
  • 打赏
  • 举报
回复
Private Function NumAdd(Byref Num As Integer)
Num = Num + 1
End Function

7,763

社区成员

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

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