vba public用法_VBA必知必会:“立即”窗口用法详解

90b06f8fd90b2090f0fb70c29023ebe2.png

用户界面篇 01

斯是陋室:"立即"窗口

开篇序:都9102年了,VBA还用着那个丑丑的IDE界面——VBE。但对于非专业编程从业人员来讲,这个多年以前设计的东西在今天依然足够强大并满足使用需求。接下来,我会以数篇文章来逐一盘点VBE的功能,并附上一些使用心得。

窗口预览

fdf64d4ffc1afefa5ad3c4884e7a2322.png

主要功能

"立即"窗口显示代码中调试语句的信息(平时看到别人代码经常用到的 debug.print语句),或者 直接在窗口中执行代码并生成信息(这个很多人不知道)。

0ab504f0305d1d77d93b1b3027854569.gif

功能点

调出窗口:“视图”——“立即”窗口或快捷键Ctrl+G调出

1,调试嵌入代码的debug.bug语句,把调试结果输入至窗口(经常看到的用法)

2,在执行程序中需要查询或改变变量为指定的值,如循环变量i,修改为指定的值

3,在执行程序中查询或改变一些属性值,如“事件响应开关”,“sheet的Name属性”,等

4,在代码中调用指定的过程:直接键入过程名称;或给带参数过程传入参数后回车

如何使用

1,代码窗口中调式 debug.print语句,用法略。
2,在“立即”窗口中,直接输入一行代码,注意是一行。然后“回车”执行此行代码。
3,在“立即”窗口中,需要搭配( debug对象的) Print方法,用于查看可显示文本的对象执行语句后的值。(也可以用英文问号 实现与 Print一样的效果) 个人经验Tips
1,在类似 for i =1 to 20的情况,为了查看当循环到 i=10时候的结果,我曾经老实地按过几百次的F5+F8调试。。。想象下 for i = 1 to 1000,可以通过直接更改 i 的值来查义循环结果,而不用按到傻或者每次修改程序中的代码。
2,同时对于需要即时变更的属性,也可以直接在“立即”窗口完成,而不必写完一套过程语句。提升开发效率。
 1  sub print_DEMO( )
 2    '正确打印变量文本 
 3    dim Var1
 4    Var1 = "hello world"
 5    debug.print Var1
 6
 7    '错误用法举例1:
 8    'print无法打印不能显示文本的对象
 9    dim dic as new dictionary
10    [...代码段...]
11    debug.print dic         '错误写法
12    debug.print dic(key1)   '正确写法
13
14    '错误用法举例2:
15    'print只能打印具体某个元素,而非整个数组
16    dim arr(5)
17    debug.print arr     '错误写法
18    debug.print arr(4)  '正确写法     
19  end sub

545b4d53e0a5e591e84df1735704939c.png

“立即”窗口中执行无效的语句

注意
1,“立即”窗口遵从上下文执行,意思即是说,它会根据当前模块/过程中的代码来输出结果
2,“立即”窗口不是所有语句都能执行,以下语句是无效的:

无效语句类型

1声明性语句

例如,dimredimprivatepublicstaticoption basedeclaredeftypetypesubfuntionproperty get等等

2控制流语句

subgosubgotoreturnresume

3多行的语句块

“立即”窗口中,分隔的物理行之间没有直接的逻辑连接,因此像if...then...end if这种代码窗口中能直接换行的语句块不能被正确执行。可以使用续行符( _ ),把代码上的一行写成多个物理行中。如果一行需要执行多个语句,语句间可使用冒号(:)分隔,注意不是分号(;)。


下一篇,我会讲解《如何用“立即窗口”做输出排版》,并介绍一些调试技巧。

“会分析里的懂技术,懂技术里的会做分析”关注我,做个“文武双修”的数据分析师
欢迎加入数据分析交流群,专业分析师亲自坐台。
个人微信:hi_chr1s,公众号:CaiCaiData
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值