一、认识VBE

我们常说的VBA,其实是Visual Basic for Application(用于应用程序的 visual basic)的简写;而VBE的全称是Visual Basic Editor,是VBA的容器,用于存放VBA。我们编写代码的过程,就像人与计算机说话(下达指令),只有计算机能够“听懂我们说的话”,才能执行我们给它下达的指令,那么VBE就承载了这个“编译”的过程,所以我们可以理解为VBE就是Excel中VBA的编译器。

其实所有的计算机语言,如JAVA、Python都有自己的编译器,就像一个翻译员一样,将我们指定的命令代码,让计算机能够看懂,能够执行。

二、打开VBE的三种方式

1.在功能区的“开发工具”中打开VBE界面

很多同学的Excel功能区中都是没有“开发工具”选项的,我们可以通过“选项”中的“自定义功能区”,调用出这个功能。

然后选择“开发工具”——Visual Basic功能键,就可以打开VBE界面。

2.在工作表标签上单击鼠标右键,打开菜单栏

在弹出的菜单中,选择“查看代码”,也可以打开VBE界面。

3.ALT+F11组合键打开

这是最常用的一种打开VBE界面的方式。

注意:无论你使用何种方式打开VBE界面,都要记得,要打开某个工作薄之后,才可以使用VBE,毕竟EXCEL文件才是VBE的载体。

三、熟悉VBE界面的布局和初步调试

我们以任何一种方式打开VBE界面后,结构如下:

当然,你打开的VBE界面肯定不是这个样子的,如果你也想调出这些窗口,就让我们先从菜单栏开始介绍VBE界面的主要功能吧。

1.菜单栏

菜单栏包含了绝大部分的VBE界面的操作,信息量也比较大,我们主要从以下几方面介绍一下:

1)调出窗口:点击工具栏——视图,里面就能显示出所有的窗口。

2)代码调试:点击菜单栏——调试,可以看到日常编写VBA代码后,如果要调试代码的运行,我们就需要使用这里的调试功能,作者E图表述平时使用的是“逐语句”和“切换断点”,而在菜单栏的二级菜单中也显示了对应的快捷键:F8和F9。

3)对于VBE的设置,我们可以在菜单栏的工具菜单中,通过“选项”里面的“编辑器格式”功能,对你的VBE操作界面设置个性化的版面;也可以通过“VBAProject属性”中的“保护”功能,对你写过的代码进行加密保护。

以上是菜单栏的一些常用内容。

2.工具栏

工具栏中的功能,是微软为了用户使用方便,将菜单栏中的一些常用操作图表罗列出来,制成快速按键而已,我们首先看看工具栏的调用。

当你初次使用VBE的时候,默认情况一般只有“标准”工具栏,我们可以在工具栏的右侧空白处,点击鼠标右键,在弹出的菜单中选择需要的工具栏“挑勾”,然后拖拽到你需要的位置即可,如下演示:

在这么多的工具栏中,同学们也没有必要把时间都花费在研究功能上,作者给大家列出几个比较常用的吧,如下:

1)保存,Ctrl+S快捷键;

2)撤回,Ctrl+Z和Ctrl+Y快捷键;

3)运行过程。写出一段代码后,可以点此运行代码查看结果或调试,快捷键是F5;

4)缩进。就像Word一样,代码都是有层级的,我们以前发出的代码,一般都是需要体现出代码的层级,比如少了“结束语句”的时候,可以快速查询纠错。一般作者都是点两下空格作为缩进,也可以使用Tab键缩进,缩进的长度可以在选项中设置;

5)注释块。相当于工作表中的批注,起到说明备忘的效果。如果我们编写了一段比较复杂的代码,时间一长,有可能忘记了代码设置的思路,所以注释块可以起到帮助我们回忆的作用。更快捷输入的方式是在需要添加注释的字符串前,直接加一个英文状态下的单引号即可。

3.工程资源管理器

这是存放对象的容器,默认情况下,包含了Sheet对象、ThisWorkbook对象,我们还可以在这里添加“窗体”“模块”和“类模块”对象,添加方式如下:

4.属性窗口

如果要学习VBA,那么同学们一定要有一个思想准备,VBA对象的属性虽不是多如牛毛,但却很少有人能记住所有的属性,甚至十分之一都记不住。这里我们可以对选定的对象进行一些常规的格式上的设置,例如对下面某个工作表的设置:

这个设置如果写成VBA代码,则如下:

Sub 代码1()

With Sheets(3)

.Name = "工作表1"

.Visible = 0

End With

End Sub

发现没有,代码中的NAME和VISIBLE属性,和刚才在属性窗口中设置的是同样的写法,是不是对学习对象属性很有帮助。

5.代码窗口

这个窗口是承载所有代码编写的地方,选择不同的对象,那么这个代码就是针对这个对象的代码窗。

6.对象和过程窗口

这两个窗口又是一个重要的内容,不知道同学们有没有听说过“VBA事件”,就是在这里选择的,例如选择工作表对象后,如下:

又如选择了窗体对象后,双击窗体区域,或者鼠标右键——查看代码,都可以调出窗体的代码窗口,如下:

7.立即窗口

这个窗口,作者E图表述很少使用。它的作用是显示代码运行的结果(我们调试代码的时候,就在工作表或者窗体中点击运行就好了),需要DEBUG.PRINT代码辅助,如下:

Sub jiafa()

a = 1 + 2

Debug.Print a

End Sub

8.本地窗口

本地窗口,是作者一直都会打开的窗口。这个窗口对于“逐语句F8”调试代码是相当重要的,如下代码演示:

我们连着按F8,就可以看到代码在逐行运行,并且本地窗口中,对变量的变化给出了相当明显的标记,便于我们调试代码。(另:这个本地窗口对于我们了解代码的运行规律也是相当有帮助的。)

9.监视窗口

和本地窗口的用途差不多,不过我们使用监视窗口前,需要添加被监视的变量表达式,如下:

以上就是同学们能看到的VBE主要界面上的窗口和菜单工具栏,作者E图表述想告诉大家:没事儿随便点一点,EXCEL不娇气,没那么容易被你“点坏”的。

四、窗体、模块、类模块的意义

刚才我们在资源工程管理器中,用鼠标右键插入了窗体、模块、类模块三个内容,它们在EXCEL VBA中有着相当重要的作用,是同学们走向自动化办公的必经之路。

我们通过本讲简单的了解一下它们的意义,以后我们都会有专门的篇章去学习。

1.窗体

承载窗体、控件的载体,我们有的时候使用工具栏的内容,就会弹出一些窗体,比如我们上面讲到的菜单栏——工具——选项窗体,在窗体对象的代码窗口中写下代码,那么我们就可以自己DIY一个交互式操作界面,是不是很酷,想想都兴奋的想操作啊!

2.模块

模块是使用最多的一个环节。其他的对象只能在本身对应的代码窗口中调用代码语句,可是在模块中写入的代码,却可以被其他对象引用。工作表对象的代码、工作薄对象的代码、窗体代码、控件代码、模块与模块之间,都可以使用CALL语句调用模块中的代码。

另外,在模块中使用FUNCTION函数过程,还可以写出“自定义函数”,如果你的EXCEL版本低,用不了XLOOKUP、MAXIFS、TEXTJOIN这类函数,可以用FUNCTION函数过程自己写出代码,和使用工作表函数一样方便。

3.类模块

类模块是自定义类的属性和方法的模块。使用VBA编写的过程就是操作对象属性和方法的过程,而类模块是自定义这一过程的方式,我们在代码中看到的PUBLIC PROPERTY过程,就属于类模块。它通常用于应用程序级别的事件中,慢慢来,跟着学,终会遇到。

【编后语】

本章的信息量很大,但是作者还是觉得有必要让同学们了解自己正在学习的这个VBE平台“到底长什么样子以及其意义”,学习不能盲目,我们要走最近的路,但不能盲目的走下去,所以就有了此篇教程。如果对你有所帮助,留言告诉我,然后“分享”“在看”一波走起。

最后给出开篇《九九乘法表》的答案,记得多练习啊!!!顺便看看代码的层级缩进!

Sub 九九乘法表()

With Sheets("九九乘法表")

For i = 1 To 9

For j = 1 To 9

If i >= j Then

.Cells(i, j) = j & "*" & i & "=" & j * i

End If

Next j

Next i

End With

End Sub

excel编程系列基础:认识VBA的编辑器VBE相关推荐

  1. 导航属性没有被赋值_excel编程系列基础:操作对象RANDE的属性介绍

    编按: 哈喽,大家好!在上篇的VBA文章中,我们提到了RANGE属性,简单介绍了它在选中单元格区域,以及对单元格区域赋值时的作用,但这仅仅是最基础的应用,今天我们继续来讲解RANGE属性. [前言] ...

  2. 【Monkey Run】Excel编程 VBA

    Excel编程 VBA 天气如此舒适,装B逐渐减少,所以最近的blog输出一直停滞不前.然而最近一直忙于Excel编程,觉得也有点从0到1的学习创造过程,有必要总结记录下.具体的VBA编程知识可以借鉴 ...

  3. VBA和Python双语对照,Excel编程学习更简单

    Excel VBA和Python双语对照学习 目录 第1章 Excel编程与Python编程概述 1 1.1 关于Excel脚本编程 1 1.1.1 为什么要进行Excel脚本编程 1 1.1.2 选 ...

  4. 替代VBA!用Python轻松实现Excel编程(文末赠书)

    大家好,我是小z,也可以叫我阿粥~ 面向Excel数据处理自动化的脚本编程,目前主要有VBA和Python两种语言可供选择. 从上世纪90年代到目前,VBA一直是Excel脚本编程的主要工具.VBA语 ...

  5. 零基础编程入门python视频-Python编程零基础小白快速入门完整全系列精品课

    1. 课程咨询加老师助理微信:助理1微信: chenjinglei88 ,助理2微信: omf6757 2. 决定购买并想得到陈敬雷老师亲自指导(课程或自己项目难题均可)加老师微信: chenjing ...

  6. .NET 并行(多核)编程系列之六 Task基础部分完结篇

    .NET 并行(多核)编程系列之六 Task基础部分完结篇 前言:之前的文章介绍了了并行编程的一些基本的,也注重的讲述了Task的一些使用方法,本篇很短,将会结束Task的基础知识的介绍. 本篇的主要 ...

  7. C#多线程编程系列(二)- 线程基础

    目录 C#多线程编程系列(二)- 线程基础 1.1 简介 1.2 创建线程 1.3 暂停线程 1.4 线程等待 1.5 终止线程 1.6 检测线程状态 1.7 线程优先级 1.8 前台线程和后台线程 ...

  8. 中秋佳节速成C语言_老九零基础学编程系列之C语言【章节1-章节5】

    前言 现在是北京时间2019.09.13 11:16 今天是月饼节啊!祝大家月饼节快乐~ 然而~作为一个本科来自生科院的工科女 为了当C语言助教 只能? 值此佳节,凿壁偷光/勤学苦练/悬梁刺骨/孙康映 ...

  9. (C#)Windows Shell 编程系列1 - 基础,浏览一个文件夹

    (C#)Windows Shell 编程系列1 - 基础,浏览一个文件夹 原文 (C#)Windows Shell 编程系列1 - 基础,浏览一个文件夹 (本系列文章由柠檬的(lc_mtt)原创,转载 ...

  10. Excel编程 VBA环境搭建(一)

    开发环境:Excel版本 2016 编程语言:VBA 1.打开开发工具 点击文件 > 选项 > 自定义功能区 > 开发工具 > 确定 2.启用宏环境 3.代码编辑区 点击工作溥 ...

最新文章

  1. 滤波、漫水填充、图像金字塔、图像缩放、阈值化
  2. MySQL事务隔离级别和实现原理
  3. rmi 反序列化漏洞_提醒:Apache Dubbo存在反序列化漏洞
  4. Java消息系统简单设计与实现
  5. 转载:介绍几本专业的书籍,一起学习
  6. Linux 下mysql5.7安装搬运 该安装说明坑最少
  7. 浅谈内存开辟问题和Block内存问题
  8. 工作309:uni-获取vuex里面的值
  9. Java中如何遍历Map对象(值得借鉴)
  10. 二叉树前序中序,后序中序,公共最近祖先的实现
  11. @vail 判断某字段在范围内_条件判断函数If,你真的会使用吗?实用技巧都掌握吗?...
  12. 7-21 魔法优惠券 (25 分)
  13. 爱我或者恨我,我就是我!
  14. Mybatis笔记 - SQL标签方法
  15. 以太坊 solidity 函数的完整声明格式
  16. odoo开发笔记 -- 附件上传
  17. 为什么要使用英英词典?
  18. 怎么在云服务器上建网站_如何在云服务器上部署自己的网站?
  19. Mysql索引优化和锁机制
  20. com组件 的劫持_IE首页被劫持跳转问题的解决方案

热门文章

  1. HTML图片与上面的div有空隙,div与div之间有空隙的解决方法
  2. 七甲川染料CY7标记海藻酸钠|CY7-海藻酸钠|alginate-peg-Cyanine7
  3. php过滤只匹配中英文字符串
  4. python 飞机大战爆炸效果_Pygame飞机大战为什么飞机与敌机碰撞后不再有图片动态切换效果...
  5. 记录String.valueOf()和toString()注意问题
  6. 微信小程序开发者工具打不开的问题
  7. cogs 2. 旅行计划
  8. [COGS 2264]魔法传输
  9. Quicker | 便捷的截屏软件 | 截图 | 截图OCR(图片编辑及文字识别)(二)
  10. pdf照片显示正常打印时被翻转_注意!五省二级建造师考试准考证开始打印