vb疑问,很基础的东西,但就是不明白

DimaAsVariantPrivateSubCommand1_Click()Label1=aEndSubPrivateSubForm_Load()a=Chr(65)En... Dim a As Variant

Private Sub Command1_Click()

Label1 = a
End Sub

Private Sub Form_Load()
a = Chr(65)
End Sub
我这样可以出结果,我把65换成其他的也成,但是如果没有那句dim a as variant,无论换什么数字,都没有结果,哪位高手告诉我是为什么?十分感谢
展开
 我来答
lnleny
2010-12-19 · TA获得超过492个赞
知道小有建树答主
回答量:919
采纳率:0%
帮助的人:564万
展开全部
这主要是因为变量的范围。
Dim a As Variant,这一句在最开始,声明的是全局变量,也就是说在Form_Load之前变量a已经存在了,并且会一直存在到整个程序结束,所以在Form_Load中对a的赋值会被记住,所以在Command1_Click中可以显示出a的值。
如果没有Dim a As Variant这句声明,那么在Form_Load中的变量a就是个局域变量,只在Form_Load中起作用,当Form_Load结束后该变量a也就消失了,而Command1_Click中的变量a也是只属于Command1_Click的局域变量,是Command1_Click这一过程自己自动声明的,和Form_Load里的变量a没有任何关系(实际上这时Form_Load里的变量a已经消失了),而Command1_Click里又没有对变量a进行任何赋值,所以不会有任何显示。
实际上,这种错误是由于没有按照良好的代码书写习惯来写代码,建议养成一个良好的习惯,这可以为自己减少很多麻烦。上网上搜一搜《修炼一名程序员的职业水准》吧,这里有一些好习惯也许可以帮你。
--
2022-12-05 广告
图形化编程简单理解为用积木块形式编程,scratch和python也是其中的一种,属于入门级编程,以其简单生动的画面获得无数学生的喜爱,深圳市创客火科技有限公司是一家做教育无人机的公司,旗下有编程无人机,积木无人机及室内外编队,每款飞机含有... 点击进入详情页
本回答由--提供
百度网友3b4f4d8
2010-12-19 · TA获得超过174个赞
知道小有建树答主
回答量:315
采纳率:0%
帮助的人:106万
展开全部
Variant 数据类型来替换任何数据类型,这样会更有适应性。如果 Variant 变量的内容是数字,它可以用字符串来表示数字或是用它实际的值来表示,这将由上下文来决定
chr(65)输出ascii值为65的字符
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户

2010-12-19
展开全部
因为dim a as variant 定义变量类型语句 写在最上面 是全局变量 所以在该模块中的所有子过程里的a变量都是同一个,公用
如果少了这个全局定义 就各自为政
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友39b91c2fb
2010-12-19 · TA获得超过518个赞
知道小有建树答主
回答量:991
采纳率:0%
帮助的人:675万
展开全部
首先你在模块的顶端使用了 dim a as Varant 语句,就等于你定义了一个模块级变量,那么无论你在该窗体的任何事件中给a赋值,这个数字都会被保存。而如果你没有该语句,那么,在Command1_Click事件和 Form_Load事件中, a 都是只对这两个事件单独其作用的过程级别变量,所以无论你在form_Load 过程中给A赋予什么值,和 按钮单击事件中的a变量都没关系,因为是两个变量了。 建议你搞清楚全局变量,模块变量,过程变量的概念先,而且要养成强制变量声明的习惯。

参考资料: sername

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式