VBA将分表导出为单独的工作簿
时间: 2023-11-28 20:50:56 浏览: 31
您可以使用以下代码将一个工作簿中的分表导出到单独的工作簿中:
```VBA
Sub ExportWorksheets()
Dim wb As Workbook
Dim newWb As Workbook
Dim ws As Worksheet
Application.ScreenUpdating = False
Set wb = ThisWorkbook
For Each ws In wb.Worksheets
Set newWb = Workbooks.Add
ws.Copy Before:=newWb.Sheets(1)
newWb.SaveAs Filename:="C:\Users\YourUserName\Documents\" & ws.Name & ".xlsx"
newWb.Close SaveChanges:=False
Next ws
Application.ScreenUpdating = True
End Sub
```
这个代码将遍历当前工作簿中的每个工作表,将其复制到新的工作簿中,并将新的工作簿保存为单独的文件。您可以通过修改 `Filename` 的路径来更改导出的文件位置。
相关问题
VBA将除汇总表外的其他分表导出为单独的工作簿
以下是一个示例VBA代码,可以将除汇总表外的其他分表导出为单独的工作簿。请注意,此代码仅适用于当前活动工作簿中包含多个工作表的情况。
```VBA
Sub ExportSheets()
Dim wb As Workbook
Dim ws As Worksheet
Dim newWB As Workbook
Dim savePath As String
'设置保存路径
savePath = "C:\Users\Username\Documents\"
'打开当前活动工作簿
Set wb = ActiveWorkbook
'循环遍历每个工作表
For Each ws In wb.Worksheets
'排除汇总表
If ws.Name <> "汇总" Then
'将工作表复制到一个新工作簿
ws.Copy
Set newWB = ActiveWorkbook
'保存新工作簿并关闭
newWB.SaveAs Filename:=savePath & ws.Name & ".xlsx", FileFormat:=xlOpenXMLWorkbook
newWB.Close saveChanges:=False
End If
Next ws
End Sub
```
在此示例中,代码将汇总表之外的每个工作表复制到一个新的工作簿,并使用工作表的名称作为文件名保存该工作簿。您可以根据需要更改保存路径和文件格式。
VBA将除汇总表外的其他分表导出为单独的工作簿,且更新后屏幕不会闪烁。
以下是一个示例代码,可以实现你的需求。需要注明的是,代码中的“汇总表”、“分表”等名称应根据实际情况进行修改。
```vb
Sub ExportSheets()
Application.ScreenUpdating = False '禁用屏幕更新,避免闪烁
Dim sheetName As String
Dim newBook As Workbook
Dim currentBook As Workbook
Set currentBook = ThisWorkbook '当前工作簿
For Each ws In currentBook.Worksheets
sheetName = ws.Name
If sheetName <> "汇总表" Then '不包括汇总表
Set newBook = Workbooks.Add '创建新的工作簿
ws.Copy Before:=newBook.Sheets(1) '将分表复制到新工作簿
newBook.SaveAs Filename:=sheetName & ".xlsx" '保存新工作簿
newBook.Close SaveChanges:=True '关闭新工作簿,并保存更改
End If
Next
Application.ScreenUpdating = True '启用屏幕更新
End Sub
```
在执行该代码之前,需要先打开需要处理的工作簿。运行代码后,除了名为“汇总表”的工作表外,其他工作表将会被导出为单独的工作簿,保存在原文件所在的文件夹中。