明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
12
返回列表 发新帖
楼主: sody

[求助]VBA中静态变量声明失效?

  [复制链接]
 楼主| 发表于 2007-1-11 21:20:00 | 显示全部楼层

6楼的办法与是否定义static变量没有任何关系

难道VBA中的static没有任何作用?

发表于 2007-1-12 09:47:00 | 显示全部楼层

变量的作用域的问题.

你在主函数里声明静态变量,其做用域仅为主函数内有效.静态变量只是不在该函数中时,内存中仍有该变量的空间保存其值,只是能全局存其值,并非能全局用其值,想用必须通过函数传递.子函数中引用的变量虽然变量名相同,但其为一个新变量,并非主函数静态变量的引用.做为新变量,根据VB的内定规则,其为空值.

你在模块上方声明 Option Explicit 要求强制变量声明就会明白是怎么回事了.

发表于 2007-1-15 09:14:00 | 显示全部楼层

Public cn

Public cn
Sub n()
Static cn  '在该过程中又重新定义了一个叫cn的变量,在该过程中它将优先被使用.(变量名冲突)
kl= 111
cn = kl    '对该过程重新定义的cn赋值,而不是给Public cn赋值,所以Public cn依然为空.

Call m()
End Sub
Sub m()
Dim ss
ss = cn
End Sub

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-26 20:51 , Processed in 0.158494 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表