楼主: Data-零一
518 2

[CDA数据分析师学习之路] [21天小白学成大师]Excel中VBA的基础.No8 [推广有奖]

  1. 加关注
  2. 串个门
  3. 加好友
  4. 发消息
  1. 0关注
  2. 26粉丝

讲师版主

本科生

60%

还不是VIP/贵宾

-

威望
0
论坛币
1090 个
学术水平
1 点
热心指数
1 点
信用等级
0 点
经验
702 点
帖子
47
精华
0
在线时间
68 小时
注册时间
2014-4-8
最后登录
2017-10-20

楼主
Data-零一 发表于 2017-9-11 12:23:03 |只看作者 |倒序
本帖最后由 Data-零一 于 2017-9-11 12:37 编辑

大家好,本小白最近跟随在零一老师身边,Excel的功力又精进不少。今天开始我会陆续更新VBA部分,之前有朋友提到前面的文章太过生硬,基本是在怼操作。接下来,会减少每一篇的内容,尽我所能把每个知识点解释清楚。如果你学过VBA,真的可以直接跳过,以下的篇幅仅针对比纯净水还纯的小白。

师父教诲:精进自己,分享他人,让别人成长,才是最大的善!



百度百科:Visual Basicfor Applications(VBA)是Visual Basic的一种宏语言,是微软开发出来在其桌面应用程序中执行通用的自动化(OLE)任务的编程语言。主要能用来扩展Windows的应用程序功能,特别是MicrosoftOffice软件。


也可说是一种应用程式视觉化的Basic 脚本。该语言于1993年由微软公司开发的的应用程序共享一种通用的自动化语言--------Visual Basic For



本小白的理解:实现Office软件的自动化,提高工作效率,让我们有更多的时间做自己喜欢的事情。



下面进入主题:



一.VBA在哪里?(本小白使用的是Excel2016)


打开Excel表格→文件

1.png




→选项

2.png



→自定义功能区

3.png



→勾选开发工具→确定

4.png




→开发工具

5.png



→Visual Basic

6.png




→这个就是VBA编辑器。

7.png




二.简单介绍界面

左上角是工程菜单

8.png




这个工作薄1的工程对应我们Excel的工作薄1

9.png

10.png



对象Sheet1对应Excel中的Sheet1

11.png

12.png




对象ThisWorkbook表示一整个工作薄

13.png



导盲犬:我们的代码要写在对应的工作薄下面的位置,双击对象即可进入编辑。



作为初学者,可以把代码写在模块,那么模块又是怎么来的?右击左侧空白处→插入→模块


接下来我们尝试把代码写在模块1里面,双击模块1。

14.png




→在左侧编辑处键入:Sub 空格 a 回车→编辑器会自动加入括号以及End Sub

15.png



导盲犬:Sub代表过程,在VBA编辑器中蓝色字体代表系统的控制指令或者是函数,a代表这个过程的名字,可自定义。在Sub 与 End Sub中间就是程序的过程。



下面我们来尝试打印:世界,你好!

16.png


导盲犬:msgbox是一个系统提示框。




→运行

17.png




→世界,你好! 就这样出来了。

18.png




编辑器中,在单引号后面键入内容属于注释,可以理解为书本上的笔记,不会执行。

19.png




下面我们尝试在A1单元格打印:世界,你好!

20.png



导盲犬:Cells是VBA中的一个基本的对象元素,Cells(1,1)指的是第1行的第1列单元格。



→运行后出现弹窗→确定→这时你会发现A1单元格也出现了世界,你好!


在VBA中代码是由上至下,逐条运行的。这里的“=”具有赋值的作用,把文本赋给第1行的第1列单元格,如果赋值是数字,毋须引号。



现在文本是打印在了Sheet1,如果我们想把文本打印在Sheet2该怎么办呢?


这里有2种方法:



1.可以把当前的工作表切换至Sheet2再运行代码,编辑器会默认打印在当前激活的工作表下。

21.png




2.如果现在激活的是Sheet1工作表,但是又想把文本打印在Sheet2,这时候我们可以在Cells前面加上Sheet2. 。

25.png




注:代码中的Sheet2引用的是表的名称,而不是它的name。

23.png




name可以在工作表的位置重命名

24.png




而在工程窗口Sheet2后面括号里的是它的name,前面才是它名称,引用的时候我们是引用括号前面的Sheet2.



→到Sheet1的位置执行→执行完毕后切换到Sheet2,会发现世界,你好!已经打印在Sheet2中的A1单元格。


接下来我们把这个过程做在一个按键里面。




→回到工作表→开发工具→插入→表单控件按钮→拖动画出一个区域

26.png




导盲犬:表单控件只能在Excel工作表中添加和使用,而activex控件不仅可以在工作表中使用,还可以在VBE编辑器用户窗体中使用,同时具备了很多的属性和事件,这些都是表单控件所不具备的,也是表单控件和activex控件最核心的区别所在。


→这时会自动弹出指定宏,我们可以指定刚才写好的Sub a→确定→删除Sheet2中A1单元格的内容→点击按钮→弹出世界,你好!

27.png




如果我们要从A1循环打印到A20,这时候就需要用到循环语句。

28.png




循环语句第一次执行的时,i=1,遇到next i ,则默认i=2,一直循环,当i=20时,遇到next i,则默认i=21,跳出循环体。


执行得到结果

29.png


今天就先到这里,下一篇我会为大家介绍for循环的步长,嵌套以及另一种结构。


文末有鸡汤:万物皆有裂痕,那是光进来的地方!




支持楼主:购买VIP购买贵宾 购买后,论坛将把您花费的资金全部奖励给楼主,以表示您对TA发好贴的支持
 
载入中......

22.png (36.59 KB)

22.png

stata SPSS
沙发
line_us 发表于 2017-9-11 15:56:53 |只看作者
支持分享
藤椅
西门高 发表于 2017-9-15 12:50:26 |只看作者
谢谢分享
您需要登录后才可以回帖 登录 | 我要注册

GMT+8, 2017-11-25 19:22