只需一步,快速开始
在过程中定义静态变量
private sub()
Static cn As Double
cn=999
call othersub
end sub
问题:为什么在 call othersub后cn的值又变成了空值
使用道具 举报
肯定是在othersub过程中修改了cn的值
我测试了一下,没问题
Private Sub ghh()
cn = 999MsgBox cnCall othersubMsgBox cnEnd Sub
Public Sub othersub()Dim d As StringEnd Sub
Public Sub othersub()Dim d As String
MsgBox cnEnd Sub
我的构想是要CN在othersub中值仍是999
在VB中这样写是可以的,但是VBA中cn的值好像被清空了
我的意思是在othersub中cn的值保持原来的不变
不是说一定是999
cn = 999MsgBox cnCall othersub(cn)MsgBox cnEnd Sub
Public Sub othersub(cn as Double)Dim d As String
我知道这样可以解决问题,但是在静态变量非常多的时候还是会很麻烦
在VB中直接用static定义就可以让变量在任何过程函数中保持静态,但是VBA可以定义却没有效果
请教解决的办法
在VBA中的某一过程中用static定义的变量,只在该过程函数中保持静态,
如在整个模块中都有效,不如定义成Public变量.
Public cnSub n()Static cnkl= 111cn = kl
Call m()End SubSub m()Dim ssss = cnEnd Sub
问题还是没有解决了,还是空值
6楼的做法就可以,但不一定要声明为静态变量,普通变量就行,变量多的话用数组或结构体来做参数
建议多看看VB中有关地址传递和值传递
本版积分规则 发表回复 回帖后跳转到最后一页
小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 ) ©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途
GMT+8, 2024-11-26 20:40 , Processed in 0.187379 second(s), 24 queries , Gzip On.
Powered by Discuz! X3.4
Copyright © 2001-2021, Tencent Cloud.