公告:本站整合全网多家VIP站点资源,全网虚拟资源一手掌握!!!
欢迎您访问本网站,请 注 册了解更多!
这期给大家分享下如何按指定名单和模板批量创建工作簿。
如上图所示,有一张工作表提供了新建工作簿的名单,又有一个工作表名为”模板”,作为新建工作簿的模板。则运行以下代码即可按指定名单和模板批量创建工作簿。
Sub NewWbByTemp()
Dim rngData As Range, c As Range
Dim strName As String, strPath As String
Dim n As Long, y As Long, strErr As String
Dim shtTemp As Worksheet
On Error Resume Next '忽略程序错误继续运行
Set rngData = getRngData() '用户选择名单区域
If Err.Number Then Exit Sub '如果选择无效区域则退出程序
Set shtTemp = Worksheets("模板")
If Err.Number Then
MsgBox "HI,没找到名为模板的工作簿,请核实。"
Exit Sub
End If
Call disAppSet '取消屏幕刷新等系统设置
strPath = ThisWorkbook.Path '当前工作簿的路径为新建工作簿保存路径
If Right(strPath, 1) <> "\" Then strPath = strPath & "\"
For Each c In rngData '遍历名单
strName = c.Value '工作簿名称
If Len(strName) Then '如果工作簿名称非空
Err.Clear '清除错误
shtTemp.Copy '复制工作表,不指定位置参数,会成为活动工作簿
ActiveWorkbook.SaveAs strPath & strName '保存工作簿
If Err.Number Then '如果存在错误,说明工作簿名称不规范
n = n + 1 '记录问题名称数量
strErr = strErr & "," & strName '记录名称
Else
y = y + 1 '记录正确创建工作簿的数量
End If
ActiveWorkbook.Close , False
End If
Next
Call reAppSet
If n Then
MsgBox "有" & n & "张工作簿创建失败,原因是工作簿重名或格式错误。" & _
"名单如下:" & vbCrLf & _
Mid(strErr, 2)
ElseIf y Then
MsgBox "创建完成。"
End If
End Sub
Sub disAppSet()
With Application '取消屏幕刷新、信息警告、公式重算等
.ScreenUpdating = False
.DisplayAlerts = False
.AskToUpdateLinks = False
.Calculation = xlCalculationManual
End With
End Sub
Sub reAppSet()
With Application '取消屏幕刷新、信息警告、公式重算等
.ScreenUpdating = True
.DisplayAlerts = True
.AskToUpdateLinks = True
.Calculation = xlCalculationAutomatic
End With
End Sub
'用户选择名称来源区域
Function getRngData() As Range
Dim rngData As Range
Set rngData = Application.InputBox("请选择新建工作簿名称来源。", _
Title:="提示", _
Default:=Selection.Address, _
Type:=8) '用户选择名称来源区域
Set rngData = Intersect(rngData, rngData.Parent.UsedRange)
'交集运算,避免用户选择整列数据造成运算量虚大或选择区域空白
If rngData Is Nothing Then '如果用户关闭了对话框,或选择区域空白,则退出程序
MsgBox "未选择有效区域。"
Exit Function
End If
Set getRngData = rngData
End Function
代码详细解释见注释……
打个响指,坦白的说,这段代码和上一期代码十分相似,简直是同父异母的哥俩好。第9行至第13行代码,指定名称为”模板”的工作表为新建工作簿的模板;如果当前工作簿查无此表,则退出程序。
第21行代码使用工作表的Copy方法复制一个工作表,但未指定复制后工作表的保存位置;我们上一章讲过,这种情况下,系统会将该工作表转换为活动工作簿。
第22行代码将活动工作簿保存到指定路径下。第23至28行代码判断工作簿名称是否符合规则。其余代码和上一节代码并无二样,也就不需赘言。
……
示例文件下载,百度网盘▼
https://pan.baidu.com/s/1WBE8zrLDN6ziOKrIxvzckw
提取码: jftk
原文:https://mp.weixin.qq.com/s/3Zri1HvSL4kwW4OM9zEVIw
- 上一篇:什么是滑珠图
- 下一篇:这样的动态图表,简单又好玩儿
本站所有资源都来源于网络收集、网友提供或者交换而来!如果侵犯了您的权益,请及时联系本站客服,我们立刻删除!
猜你还喜欢
- 10-19 H5页面获取微信用户openid极简攻略
- 10-19 php项目中 composer update install 区别
- 10-16 vue-h5微信公众号 网页授权登录(静默授权)
- 10-16 vue微信H5自定义分享兼容ios、PC、安卓
- 10-16 laravel SimpleQrCode 扩展包生成二维码使用记录
- 10-16 [最新]mac安装ImageMagick与PHP扩展Imagick
- 10-16 mac安装ImageMagick与PHP扩展imagick
- 10-16 laravel常用目录路径获取方法
- 10-16 [扩展推荐] Laravel 的整站静态页面缓存
- 10-16 Github webhooks 自动部署博客文章,使用总结【含视频】
- 10-16 PHPExcel 设置单元格受保护,不可编辑,或需要密码
- 10-16 如何创建受密码保护的pdf文件
暂无评论,来添加一个吧。