1
工作表的基础操作上一章我们学习了工作表的一些操作,这一章就来学习一下对工作簿的操作
工作表和工作簿有什么区别呢?
下面我们就来了解一下工作簿的操作
打开工作簿
新建工作簿
Application.displayAlerts=false
Application.screenUpdating =false
Workbooks.add //新建一个工作簿
Activeworkbook.sheets(1).range(“a1”)=”到此一游haha” //新建工作簿会自动打开,默认有一个sheet1工作表,我们在新建工作簿的第一个工作表的A1单元格填写”到此一游”。证明我们的操作成功了。
Activeworkbook.Save //保存一下,新建文档默认会保存到文档目录下面,你可以手动新建一个工作簿直接点保存看一下默认地址。
Activeworkbook.close //关闭
Application.displayAlerts=true
Application.screenUpdating =true
保存工作簿
关闭工作簿
Foreach 的用法
前几章我们一张掌握了for的用法,今天来介绍for的另一种写法。。
有点像php语言的写法,下面我们通过两段代码来更直观的了解for each
需求1:将单元格A1 到A10 都赋值1
For的写法:
Dim i as integer For i=1 to 10 Range(“a” & i)=iNext
For each的写法:
Dim ra as range For each ra in range(“a1:a10”) ra=1 //上面我们定义了ra as range,ra是单元格类型,表示a1到a10单元格 Next
需求2:将单元格A1 到A10 赋值为他们各自的下标
For的写法:
Dim i as integer For i=1 to 10 Range(“a” & i)=i Next
For each的写法:
Dim ra as range For eachra in range(“a1:a10”) i=i+1 // 每次循环i+1,i初始值默认是0 Ra=i //等价于range(“a”& i)= i Next
学会了for each 我们来实战一下
2
案例1题目:
除了叫“绝不能删”的表不删除外,批量删除工作簿中的其他表。
分析:
1. 要判断每一张表的名字,不等于“绝不能删”,执行删除操作
2.要定义一个变量类型为工作表dim sht as worksheet
3.执行删除操作会有提示弹框要事先关闭
代码:
sub del()Dim sht as worksheetApplication.displayAlerts=false //执行删除操作会有弹框出现,所以要先关闭弹框 For each sht in sheets If sht.name <>”决不能删” then sht.delete End if NextApplication.displayAlerts=trueend sub
3
案例2题目:
将工作簿中的所有工作表另存为一个个excel文件,另存地址为d:\data 代码:sub chaifen()For each sht in sheetsSht.copy // copy不指定位置默认新建一个工作簿Activeworkbook.SaveAs filename:=”d\data\”& sht.name & ”.xlsx” //文件路径Activeworkbook.close//关闭Nextend sub
结果如下图: