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

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

功能点
调出窗口:“视图”——“立即”窗口或快捷键Ctrl+G调出
1,调试嵌入代码的debug.bug
语句,把调试结果输入至窗口(经常看到的用法)
2,在执行程序中需要查询或改变变量为指定的值,如循环变量i,修改为指定的值
3,在执行程序中查询或改变一些属性值,如“事件响应开关”,“sheet的Name属性”,等
4,在代码中调用指定的过程:直接键入过程名称;或给带参数过程传入参数后回车
如何使用
1,代码窗口中调式debug.print
语句,用法略。
2,在“立即”窗口中,直接输入一行代码,注意是一行。然后“回车”执行此行代码。
3,在“立即”窗口中,需要搭配(debug
对象的)?
实现与
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

“立即”窗口中执行无效的语句
注意:
1,“立即”窗口遵从上下文执行,意思即是说,它会根据当前模块/过程中的代码来输出结果
2,“立即”窗口不是所有语句都能执行,以下语句是无效的:
无效语句类型
1声明性语句:
例如,dim
、redim
、private
、public
、static
、option base
、declare
、deftype
、type
、sub
、funtion
、property get
等等
2控制流语句:
sub
、gosub
、goto
、return
、resume
等
3多行的语句块:
“立即”窗口中,分隔的物理行之间没有直接的逻辑连接,因此像if...then...end if
这种代码窗口中能直接换行的语句块不能被正确执行。可以使用续行符( _ ),把代码上的一行写成多个物理行中。如果一行需要执行多个语句,语句间可使用冒号(:)分隔,注意不是分号(;)。
下一篇,我会讲解《如何用“立即窗口”做输出排版》,并介绍一些调试技巧。
“会分析里的懂技术,懂技术里的会做分析”关注我,做个“文武双修”的数据分析师
欢迎加入数据分析交流群,专业分析师亲自坐台。
个人微信:hi_chr1s,公众号:CaiCaiData