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,无论换什么数字,都没有结果,哪位高手告诉我是为什么?十分感谢 展开
Private Sub Command1_Click()
Label1 = a
End Sub
Private Sub Form_Load()
a = Chr(65)
End Sub
我这样可以出结果,我把65换成其他的也成,但是如果没有那句dim a as variant,无论换什么数字,都没有结果,哪位高手告诉我是为什么?十分感谢 展开
4个回答
展开全部
这主要是因为变量的范围。
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进行任何赋值,所以不会有任何显示。
实际上,这种错误是由于没有按照良好的代码书写习惯来写代码,建议养成一个良好的习惯,这可以为自己减少很多麻烦。上网上搜一搜《修炼一名程序员的职业水准》吧,这里有一些好习惯也许可以帮你。
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 广告
2022-12-05 广告
图形化编程简单理解为用积木块形式编程,scratch和python也是其中的一种,属于入门级编程,以其简单生动的画面获得无数学生的喜爱,深圳市创客火科技有限公司是一家做教育无人机的公司,旗下有编程无人机,积木无人机及室内外编队,每款飞机含有...
点击进入详情页
本回答由--提供
展开全部
Variant 数据类型来替换任何数据类型,这样会更有适应性。如果 Variant 变量的内容是数字,它可以用字符串来表示数字或是用它实际的值来表示,这将由上下文来决定
chr(65)输出ascii值为65的字符
chr(65)输出ascii值为65的字符
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2010-12-19
展开全部
因为dim a as variant 定义变量类型语句 写在最上面 是全局变量 所以在该模块中的所有子过程里的a变量都是同一个,公用
如果少了这个全局定义 就各自为政
如果少了这个全局定义 就各自为政
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
首先你在模块的顶端使用了 dim a as Varant 语句,就等于你定义了一个模块级变量,那么无论你在该窗体的任何事件中给a赋值,这个数字都会被保存。而如果你没有该语句,那么,在Command1_Click事件和 Form_Load事件中, a 都是只对这两个事件单独其作用的过程级别变量,所以无论你在form_Load 过程中给A赋予什么值,和 按钮单击事件中的a变量都没关系,因为是两个变量了。 建议你搞清楚全局变量,模块变量,过程变量的概念先,而且要养成强制变量声明的习惯。
参考资料: sername
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询