下面我们就来理解一下事情簿的操作
打开事情簿Application.displayAlerts=false //点击保存会有弹框涌现,以是要先关闭弹框
Application.screenUpdating =false //操作事情簿桌面会涌现闪动。也先关闭掉

Workbooks.open filename:=”d:\data\1.xlsx” //打开D盘data文件下的1.xlsx事情簿
Activeworkbook.sheets(1).range(“a1”)=”到此一游” // Activeworkbook表示当前活动的事情簿。Activeworkbook.sheets(1).range(“a1”)指当前活动的事情簿的第一个事情表的A1单元格填写”到此一游”。证明我们真的打开过。
Activeworkbook.Save //保存一下刚刚做的修正
Activeworkbook.close //关闭事情簿
Application.displayAlerts=true //开启
Application.screenUpdating =true //开启
新建事情簿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
保存事情簿Activeworkbook.SaveAsfilename:=”d\data\2.xlsx”
关闭事情簿Activeworkbook.close
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的写法:
Dimiasinteger Fori=1to10 Range(“a”&i)=iNext
For each的写法:
Dimraasrange Foreach rainrange(“a1:a10”) i=i+1//每次循环i+1,i初始值默认是0 Ra=i//等价于range(“a”&i)=i Next
学会了for each 我们来实战一下
案例1
题目:
除了叫“绝不能删”的表不删除外,批量删除事情簿中的其他表。
剖析:
1. 要判断每一张表的名字,不即是“绝不能删”,实行删除操作
2.要定义一个变量类型为事情表dim sht as worksheet
3.实行删除操作会有提示弹框要事先关闭
代码:
sub del()DimshtasworksheetApplication.displayAlerts=false //实行删除操作会有弹框涌现,以是要先关闭弹框 Foreachshtinsheets Ifsht.name<>”决不能删”thensht.delete Endif Next Application.displayAlerts=trueendsub
案例2
题目:
将事情簿中的所有事情表另存为一个个excel文件,另存地址为d:\data
代码:
sub chaifen() Foreachshtinsheets Sht.copy//copy不指定位置默认新建一个事情簿 Activeworkbook.SaveAsfilename:=”d\data\”&sht.name&”.xlsx”//文件路径Activeworkbook.close//关闭 Nextend sub
结果如下图: