师父教诲:精进自己,分享他人,让别人成长,才是最大的善!
百度百科:Visual Basicfor Applications(VBA)是Visual Basic的一种宏语言,是微软开发出来在其桌面应用程序中执行通用的自动化(OLE)任务的编程语言。主要能用来扩展Windows的应用程序功能,特别是MicrosoftOffice软件。
也可说是一种应用程式视觉化的Basic 脚本。该语言于1993年由微软公司开发的的应用程序共享一种通用的自动化语言--------Visual Basic For
本小白的理解:实现Office软件的自动化,提高工作效率,让我们有更多的时间做自己喜欢的事情。
下面进入主题:
一.VBA在哪里?(本小白使用的是Excel2016)
打开Excel表格→文件
→选项
→自定义功能区
→勾选开发工具→确定
→开发工具
→Visual Basic
→这个就是VBA编辑器。
二.简单介绍界面
左上角是工程菜单
这个工作薄1的工程对应我们Excel的工作薄1
对象Sheet1对应Excel中的Sheet1
对象ThisWorkbook表示一整个工作薄
导盲犬:我们的代码要写在对应的工作薄下面的位置,双击对象即可进入编辑。
作为初学者,可以把代码写在模块,那么模块又是怎么来的?右击左侧空白处→插入→模块
接下来我们尝试把代码写在模块1里面,双击模块1。
→在左侧编辑处键入:Sub 空格 a 回车→编辑器会自动加入括号以及End Sub
导盲犬:Sub代表过程,在VBA编辑器中蓝色字体代表系统的控制指令或者是函数,a代表这个过程的名字,可自定义。在Sub 与 End Sub中间就是程序的过程。
下面我们来尝试打印:世界,你好!
导盲犬:msgbox是一个系统提示框。
→运行
→世界,你好! 就这样出来了。
编辑器中,在单引号后面键入内容属于注释,可以理解为书本上的笔记,不会执行。
下面我们尝试在A1单元格打印:世界,你好!
导盲犬:Cells是VBA中的一个基本的对象元素,Cells(1,1)指的是第1行的第1列单元格。
→运行后出现弹窗→确定→这时你会发现A1单元格也出现了世界,你好!
在VBA中代码是由上至下,逐条运行的。这里的“=”具有赋值的作用,把文本赋给第1行的第1列单元格,如果赋值是数字,毋须引号。
现在文本是打印在了Sheet1,如果我们想把文本打印在Sheet2该怎么办呢?
这里有2种方法:
1.可以把当前的工作表切换至Sheet2再运行代码,编辑器会默认打印在当前激活的工作表下。
2.如果现在激活的是Sheet1工作表,但是又想把文本打印在Sheet2,这时候我们可以在Cells前面加上Sheet2. 。
注:代码中的Sheet2引用的是表的名称,而不是它的name。
name可以在工作表的位置重命名
而在工程窗口Sheet2后面括号里的是它的name,前面才是它名称,引用的时候我们是引用括号前面的Sheet2.
→到Sheet1的位置执行→执行完毕后切换到Sheet2,会发现世界,你好!已经打印在Sheet2中的A1单元格。
接下来我们把这个过程做在一个按键里面。
→回到工作表→开发工具→插入→表单控件按钮→拖动画出一个区域
导盲犬:表单控件只能在Excel工作表中添加和使用,而activex控件不仅可以在工作表中使用,还可以在VBE编辑器用户窗体中使用,同时具备了很多的属性和事件,这些都是表单控件所不具备的,也是表单控件和activex控件最核心的区别所在。
→这时会自动弹出指定宏,我们可以指定刚才写好的Sub a→确定→删除Sheet2中A1单元格的内容→点击按钮→弹出世界,你好!
如果我们要从A1循环打印到A20,这时候就需要用到循环语句。
循环语句第一次执行的时,i=1,遇到next i ,则默认i=2,一直循环,当i=20时,遇到next i,则默认i=21,跳出循环体。
执行得到结果
今天就先到这里,下一篇我会为大家介绍for循环的步长,嵌套以及另一种结构。
文末有鸡汤:万物皆有裂痕,那是光进来的地方!