VBA for Excel(三)
VBA for Excel(三)
本文涉及到的问题
- 表,文件的增存删改
前言
也许你看完前面两篇文章后完全是懵的,心里想介绍了怎么录制宏,什么是对象,VBA基本语法我就会用了吗,骨架子就是骨架子,没有肉一下就散了。别担心第三讲我会讲些实实在在的。
首先我们要明白,录制宏并不是完美的实际上我在第一讲也谈到过,首先它是冗余的,Excel为了保证准确性会多出录入一些无用的代码,这种情况下如果你想多个宏间进行连接构建一个复杂一些的宏,它的执行效率就不高了。而且它存在绝对相对模式,宏之间模式不同的话用起来逻辑就不那么好理,因此靠录制就想实现一个复杂的功能是很难的,而且它还不一定可以复用。这就是学习的必要了不废话了下面直接开始。
3.1 什么是宏
宏的本质就是一系列动作,他靠一段代码实现,通常将他称之为过程,它以sub
开头end sub
结尾。我们通常将他写在一个模块内,一个模块可以有多个宏。对于.xlsx文件我们通常要新建它,因为这个格式是不允许包含宏的自然也没有模块。简单来说含有宏的文件一般带m,比如xlsm,xlam,xltm。哦对了老版本的xls和新版的个人工作簿xlsb是可以带的。保存的时候注意格式就好。下面直接上干货了用VBA操作Excel。
只说最常用的后面会陆续补充,毕竟备忘的嘛哈哈(其实是较真去查太麻烦,每一个函数都很复杂设计的都很完备一般你不必去设置它的所有参数),你们有想让我补充的可以在下面评论,我一周登一次看到顺便就帮你们解决一下。
3.2 工作簿对象
这里的工作簿对象是Workbook,它的集合对象为Workbooks。一般能明确用到工程资源管理器中的某个工作簿时都是用Workbook,其他情况一般用Workbooks
常用方法
新建(Workbooks.add)
sub test()Workbooks.add'直接这样写就可以新建一个空白工作簿'一般都加上它的参数Workbooks.add("路径\test.xlsx")'新建一个一模一样的工作簿,文件名excel会帮你加数字,这里是test1xlsx'以是Excel内置的常量,通常用不到感兴趣的可以去查一下'可以实现复制
end sub
打开(Workbooks.open)
sub test()Workbooks.open("路径\test.xlsx")'这个函数就够复杂,一般呢就按上面用,顶天文件有密码加个密码Workbooks.open("路径\test.xlsx",password:="123123")
end sub
保存(Workbooks.Save)
sub test()Workbooks.open("路径\test.xlsx",路径\test.xlsx)ActiveWorkbook.Save'他没有参数,如果文件是你新建的他会存入你上次存文件的路径
end sub
另存(Workbooks.SaveAs)
sub test()Workbooks.add("路径\test.xlsx")ActiveWorkbook.SaveAs("路径\test.xlsx")'新建时与Save的区别就是可以指定存放路径,其实也可以不写,这时与Save就一样了
end sub
一般已经存在Save就可以,其他如新建的文件就用SaveAs,如果想备份文件也用SaveAs。
关闭(Workbooks.close)
sub test()Workbooks.close'关掉工作簿,注意就算这是最后一个关闭工作簿也不等于退出Excel'更常用的,保存更改推出,不保存用False。这个参数是为了屏蔽那些烦人的提示窗Workbooks.close True
end sub
删除(Kill)
sub test()Kill "路径\test.xlsx"
end sub
常用属性
ActiveWorkbook.Path '工作簿路径
ActiveWorkbook.Name '工作簿文件名
ActiveWorkbook.FullName '工作簿路径+文件名
ActiveWorkbook.Sheets.Count '工作簿表个数(姑且放这吧)
'单纯提取信息的话一般就这些,其他的不太常用
3.3 工作表对象
讲道理操作工作簿的目的不就是为了改表,当然更多的其实是改表中的内容。为了整体结构我们还是先说表。
一工作部道理其实是一样的,工作表对象是Sheet,它的集合对象为Sheets,据我了解worksheets对象也是有的不过与sheets对象差别不大。
常用方法
新建(Sheets.add)
sub test()'语法sheets.add BeforSe,After,Count,Type'很好理解,最常用的在最后一张表最后添加一张表sheets.add ,sheets(sheets.count)
end sub
选择(Sheets(index).select)
sub test()Sheets("sheetname").selectSheets(1).select'名和索引都是可以的
end sub
复制(Sheet.copy)
sub test()'Sheets(1).copy会在内存生成一个一张表的工作簿'且active指向它你可以SaveAs另存为一个工作簿'也可以复制到工作簿,完整语句如下'复制到所有表后Sheets(1).copy ,sheets(sheets.count)
end sub
删除(Sheet.delete)
sub test()Sheets(1).delete'如果表有数据会出弹窗'Application.DisplayAlerts = False可以让Excel忽略弹窗,用了改回来就行
end sub
常用属性
Sheets(1).Name '表名可读写
Sheets(1).Visible '是否隐藏可读写,还可深度隐藏
Sheets.Count '表数目
基本就这些,Excel操作的真正单位是单元格,那才是大头。下一节就是最重要的了工作表区域,涉及到区域的选择,区域的交叉并,R1C1与A1,填入公式,区域的常用方法属性。
VBA for Excel(三)相关推荐
- 重大改变!Python 或将取代 VBA 成为 Excel 官方脚本语言
如果微软的 Excel 中支持了人生苦短的 Python,你还会喜欢那个直接且易上手的 VBA 编程吗? 近日,据国外媒体 BLEEPINGCOMPUTER 报道,微软正考虑添加 Python 为官方 ...
- VBA与Excel内置的函数
了解VBA与Excel内置的函数,能够使我们处理起任务来事半功倍.这些函数不仅使用方便,而且效率一般都比较高(有些是例外的,特别是某些工作表函数),比我们自己写的要高效的多. VBA内置的函数 VBA ...
- vba与python相比2019_重大改变!Python 或将取代 VBA 成为 Excel 官方脚本语言
点击上方"CSDN",选择"置顶公众号" 关键时刻,第一时间送达! 如果微软的 Excel 中支持了人生苦短的 Python,你还会喜欢那个直接且易上手的 VB ...
- 斜线表头html怎么做,Excel三栏斜线表头的完美制作方法
Excel三栏斜线表头的完美制作方法 在Excel中制作三栏斜线表头的方法有很多,今天应届毕业生网小编介绍一种认为最完美最简单的制作excel三栏斜线表头的方法: 操作步骤: 步骤一:边框线的.添加. ...
- VBA操作Excel之获取单元格区域
VBA操作Excel之获取单元格区域 一.VBA通过索引引用工作表 二.VBA获取单元格区域 三.VBA调用方法参数传值 参考文档 一.VBA通过索引引用工作表 VBA打开工作簿后,通常一个工作簿有若 ...
- VBA操作Excel之设置单元格属性
VBA操作Excel简介 一.VBA读写Excel文件 二.VBA设置单元格属性 三.VBA弹出输入和输出窗口 参考文档 一.VBA读写Excel文件 VBA简介及打开Excel文件方法见VBA读写E ...
- ChatGPT与VBA:Excel操作一键搞定的全能助手
摘要 Excel是一款广泛应用于数据处理和分析的工具,而VBA(Visual Basic for Applications)是一种用于编程自动化Excel操作的语言.然而,对于非专业的Excel用户来 ...
- VBA在Excel中的应用(一):改变符合条件单元格的背景颜色
Jiahua Jin VBA在Excel中的应用(一):改变符合条件单元格的背景颜色 在使用excel处理数据的时候,为了能更清晰的标示出满足特定条件的单元格,对单元格添加背景色是不错的选择.手工处理 ...
- 用VBA得到EXCEL表格中的行数和列数
用VBA得到EXCEL表格中的行数和列数 每种方法中上面的是Excel的行数,下面的是Excel的列数. 方法1: ActiveSheet.UsedRange.Rows.Count ActiveShe ...
最新文章
- 2022-2028年中国棕刚玉行业市场运营模式及未来发展潜力报告
- php银盾算法,盾灵商品推广系统
- 李永乐线性代数手写笔记-向量
- 深度学习之循环神经网络(2)循环神经网络原理
- wds+mdt 分布式自动部署 操作系统
- [css] 请说说在什么时候用transition?什么时候使用animation?
- 2018-2019 ACM-ICPC Nordic Collegiate Programming Contest (NCPC 2018) - 4.28
- Ubuntu 解决 pip 安装 lxml 出现 x86_64-linux-gnu-gcc 异常
- angular ui组件_使用Angular Material将现代UI组件添加到Angular项目中
- php 502状态码,Nginx502状态码处理
- 周记 2019.3.25~2019.3.31
- 数据操纵:SELECT, INSERT, UPDATE, DELETE
- NoSQL 数据库分类
- 配置多台计算机之间ssh无密码登录的一种简便方法
- 【OpenCV入门教程之二】 一览众山小:OpenCV 2.4.8 or OpenCV 2.4.9组件结构全解析
- 计算机组成原理bzc指令,计算机组成原理课程设计-09级.ppt
- SQL刷题:排名的问题
- <urlopen error [Errno 104] Connection reset by peer>
- 佳能打印机HP打印机爱普生打印机提示卡纸了确找不到卡纸
- 移动宽带套餐介绍_移动宽带一年多少钱 2018移动宽带套餐介绍