启明办公

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 132|回复: 20

Excel VBA入门(零)

[复制链接]

1

主题

6

帖子

8

积分

新手上路

Rank: 1

积分
8
发表于 2022-12-13 08:51:54 | 显示全部楼层 |阅读模式
本教程所用系统环境:

  • Windows 10
  • Excel 2013
0. 先说明几个概念


  • Excel是一个应用程序(Application)
  • 一个Excel文件称为工作薄(Workbook)
  • 工作薄中的每张表都称为工作表(Worksheet)
  • 工作表中的格子称为单元格(Cell),多个格子叫单元格区域(Range)
这是不是官方定义的概念我不知道,但这是我所使用的概念。看本教程里面的人是应当注意的

1. 添加开发工具

打开Excel,依次找到“文件”->“选项”->“自定义功能区”,在右侧主选项卡下面的选项中,找到“开发工具”,在前面的小框打勾,确定。返回Excel,即可在菜单栏右侧看到有开发工具:




2. 使用VBE

VBE即VBA的编程环境。通常有两种方式可以进入

  • 菜单栏 -> 开发工具 -> Visual Basic
  • 快捷键:Alt + F11
3. 第一个VBA程序

进入VBE后,在菜单栏依次选择“插入”->“模块”,然后光标会自动定位到代码窗口中,VBA中的代码即在此编写。
VBA常使用“过程”来组织代码(另一种方式是“函数”,后面会介绍)。过程用
Sub sub_name()
    '
    '中间这里是我们要实现各种操作的VBA代码
    '
End Sub表示。其中Sub和末尾的End Sub是必须的固定形式,sub_name是过程名称,后面的括号()是必须的。VBA中允许使用中文作为过程名称,但建议还是尽量使用英文为好。
第一个VBA程序
Sub Hello_World()
    Debug.Print "Hello, World!"
    MsgBox "Hello, World!"
End Sub这个过程的名字是Hello_World。运行VBA代码有三种方式:

  • 点击菜单栏下面的工具栏中的绿色向右的小三角




  • 在菜单栏选择“运行”->“运行子过程/用户窗体 F5”
  • 快捷键,按上键盘上的F5
应该注意的是,如果运行代码前鼠标光标没有在任一个VBA过程内部,VBE会弹出一个对话框,请求选择将要用于运行的VBA过程:



第一行代码Debug.Print "Hello, World!"会在位于VBE下方的“立即窗口”中输出双引号中的内容,即Hello, World:


(如果VBE中没有出现立即窗口,可以在菜单栏“视图”中选择显示)
第二行代码MsgBox "Hello, World!"则会以弹窗的形式显示双引号中的Hello, World!:



4. 保存

包含有VBA代码的Excel文件不能再保存为.xls或.xlsx文件,应保存为.xlsm文件


回复

使用道具 举报

1

主题

9

帖子

8

积分

新手上路

Rank: 1

积分
8
发表于 2022-12-13 08:52:40 | 显示全部楼层
那个vba能实现文本数据的累记添加吗?
回复

使用道具 举报

0

主题

6

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2022-12-13 08:53:13 | 显示全部楼层
理论上来说,可以。具体实施的话,还要看你的具体的需求
回复

使用道具 举报

1

主题

8

帖子

8

积分

新手上路

Rank: 1

积分
8
发表于 2022-12-13 08:53:51 | 显示全部楼层
我想把好几个文本数据添加到excel里,听说数组和字典可以办到,是真的吗?
回复

使用道具 举报

0

主题

4

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2022-12-13 08:54:36 | 显示全部楼层
你意思是把txt文件的内容放到Excel里面是吗?
回复

使用道具 举报

0

主题

4

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2022-12-13 08:55:22 | 显示全部楼层
是是,就这样
回复

使用道具 举报

3

主题

9

帖子

11

积分

新手上路

Rank: 1

积分
11
发表于 2022-12-13 08:56:03 | 显示全部楼层
可以实现的
回复

使用道具 举报

2

主题

7

帖子

10

积分

新手上路

Rank: 1

积分
10
发表于 2022-12-13 08:56:50 | 显示全部楼层
嗯嗯,是用字典和数组吗?那个我今天用批处理命令把所有文档合并为一个总文档然后导入到excel里了,发现有些本该显示数据的地方却显示的是标题,不知道怎么回事。你知道呢?
回复

使用道具 举报

0

主题

3

帖子

5

积分

新手上路

Rank: 1

积分
5
发表于 2022-12-13 08:57:40 | 显示全部楼层
要用到VBA文件的读取操作。你说的问题,可能是文件数据格式的的原因,比如行分隔符、列分隔这些没有处理好
回复

使用道具 举报

1

主题

7

帖子

5

积分

新手上路

Rank: 1

积分
5
发表于 2022-12-13 08:57:53 | 显示全部楼层
好的,谢谢啦
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|启明办公

Copyright © 2001-2013 Comsenz Inc.Template by Comsenz Inc.All Rights Reserved.

Powered by Discuz!X3.4

快速回复 返回顶部 返回列表