2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > EXCEL VBA创建sheet/工作簿

EXCEL VBA创建sheet/工作簿

时间:2022-05-05 04:23:09

相关推荐

EXCEL VBA创建sheet/工作簿

1.需要创建以地市命名的系列sheet,但不想手动创建改名。

代码实现如下:

Sub SheetAdd() Dim i As Long "定义一个长整型变量 Sheets.Add After:=Sheets(Sheets.Count), Count:=Sheets(1).Range("A" & Rows.Count).End(xlUp).Row - 1 "在现有Sheet后新建工作表,工作表数量等于Sheet(1)表A列非空单元格行数 For i = 2 To Sheets.Count Sheets(i).Name = Sheets(1).Cells(i, 1).Value "工作表名称设置为Sheet(1)A列单元格值 Next MsgBox "创建工作表完成!" End Sub

完成后如图:

2.那么,创建完成后需要把系列sheet分离成独立的工作簿该如何呢,

VBA实现代码如下:

Sub 拆分工作簿() Dim sht As Worksheet "定义一个工作表变量 sht Dim mybook As Workbook "定义一个工作簿变量 mybook Application.ScreenUpdating = False "关闭屏幕更新:作用为加快宏的执行速度,这样将看不到宏的执行过程,但宏的执行速度加快了。 Set mybook = ActiveWorkbook "将当前工作簿赋值给变量 mybook For Each sht In mybook.Sheets " FOR 循环实现将工作簿中的多个工作表拆开成以工作表名称命名的工作簿并保存在原工作簿相同的路径中 sht.Copy ActiveWorkbook.SaveAs Filename:=mybook.Path & "\" & sht.Name, FileFormat:=xlNormal ActiveWorkbook.Close Next Application.ScreenUpdating = True "恢复屏幕刷新 ,屏幕刷新 False /True 需成对出现 。 MsgBox "工作簿已经拆分完毕" End Sub

完成如图:

3.以上两个步骤可以归纳为:按指定名称批量创建Excel工作簿。

VBA代码实现如下:

Sub Createwks() Dim i&, p$, r Application.ScreenUpdating = False "取消屏幕刷新 Application.DisplayAlerts = False "取消警告提示,当有重名工作簿时直接覆盖 p = ThisWorkbook.Path & "\" "当前工作簿所在的路径 r = [a1].CurrentRegion "数据装入数组r For i = 2 To UBound(r) "标题不要,因此从第2个元素开始遍历数组r With Workbooks.Add "新建工作簿 .SaveAs p & r(i, 1), xlWorkbookDefault "保存工作簿 .Close True "关闭工作簿 End With Next Application.ScreenUpdating = True Application.DisplayAlerts = True MsgBox "工作簿已经创建完毕" End Sub

完成后如图:

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。