当前位置: 代码网 > it编程>编程语言>其他编程 > VBA中Excel宏的介绍及应用

VBA中Excel宏的介绍及应用

2024年05月15日 其他编程 我要评论
excel中的宏(macro)是什么在excel的“视图”标签页下,有一个宏的功能,示例如下图:宏其实是一段可以重复执行的代码,对应上图的两个选项:查看宏:查看已经存在的宏的代

excel中的宏(macro)是什么

在excel的“视图”标签页下,有一个宏的功能,示例如下图:

宏其实是一段可以重复执行的代码,对应上图的两个选项:

  • 查看宏:查看已经存在的宏的代码段,并且可以执行
  • 录制宏: excel提供了可以像录制声音那样录制宏的代码段,点击“录制宏”之后,接下来对excel的操作会自动转换为代码。

宏的来历

既然宏是可以重复执行的代码段,那宏是什么语言的代码呢?答案是vba, 那vba是什么语言呢? 这就要从basic语言说起了。

basic是一门很古老的计算机语言,发表于1964年。basic代码通过basic解释器翻译为计算机能识别的机器指令。
微软的dos、windows 3、windows 9系列预装了basic解释器(称为:qbasic),所以可以直接写basic程序;但从windows 2000开始,就不再预装basic解释器了。

微软基于windows 图形界面开发了新的visual basic语言,并提供了可视化的便捷开发工具visual basic ide。不过是需要收费的。
1996年,微软开发visual basic scripting editing(即vbscript),类似快速书写批处理脚本,语法和vb保持一致。vbscript在操作系统内置。
vba: visual basic for applications 。微软在office系列产品中集成了vbscript解释器,这个vbscript就是vba。除了解释器,还有集成开发环境,一个简化版的visual basic ide。

所以, 宏属于vb语言系列,但是属于脚本语言, 也就是不需要编译为exe文件,可以由解释器直接解释运行,宏的代码示例:

sub 宏1()
'
' 宏1 宏
'
'
    cells.select
    range("g22").activate
    selection.copy
    sheets("sheet1").select
    cells.select
    range("f26").activate
    activesheet.paste
end sub
  • sub 是vb语言的过程, 相当于函数的概念
  • 单引号 ’ 用来添加注释,属于vb的语法
  • cells、sheets、activesheet 是vba的对象

集成在excel 中的开发ide如下:

宏能干什么?

宏是一段脚本代码,能够帮助我们进行重复、繁杂的动作。最重要的是宏的编写或录制很简单,没有编程经验或是没有vba语言的基础也可以实现简单的宏。宏一般是用来处理复杂的excel,也就是内容较多或是格式等较为复杂。宏可以用来:

  • 对excel文件、工作表(sheet)等进行操作,可以像界面操作一样复制、删除、移动
  • 对单元格(cell)进行操作,包括设置值、获取comment等
  • 可以将excel中的数据输出到文件中

典型应用包括:

  • 收集不同excel中的工作表统一到一份excel中,自动产生报表
  • 在系统开发时,用来收集初始数据或是增量的admin数据
  • 。。。

宏的录制

接下来以一个复制工作表的实例演示宏的录制。

视图>宏>录制宏

切到sheet2,在界面上ctrl+a选中sheet2的所有cell, 键盘ctrl+c

切到sheet1,ctrl+a选中sheet1的所有cell,键盘ctrl+v

点击“停止录制”,保存宏
以上宏的录制就完成了, 通过查看宏,

点击“执行”就可以重复刚刚录制的动作了

点击“编辑”就可以打开ide并看到录制的宏的代码。如果有vb的编程基础,基础vba的api就可以进行宏的编程了。

宏的保存

宏的代码段是保存在excel文件中,在老版本的excel中需要开启允许宏的设置, 新版本的excel则需要保存后缀名是 .xlsm 的文件。如下图:

如果不保存.xlsm 类型,则会报如下提示,而且保存之后宏也可能丢失。

到此这篇关于vba中excel宏的介绍及应用的文章就介绍到这了,更多相关vba excel宏内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com