欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

EXCEL将各个Sheet工作表另存为新工作簿

程序员文章站 2022-04-17 19:49:17
...

  通过EXCEL中的VBA就可以轻松解决。

  Sub SaveAs()

  On Error Resume Next

  Dim FolderPath As String, FolderName As String, BN As String

  Dim ReturnValue As Integer

  BN=ActiveWorkbook.Name

  FolderPath=ThisWorkbook.Path

  FolderName=Mid(BN, 1, InStrRev(BN, ".", Len(BN)) - 1)

  Dim MyFile As Object

  Set MyFile=CreateObject("Scripting.FileSystemObject")

  If MyFile.folderexists(FolderPath & "" & FolderName & "-Saved") Then

  ReturnValue=MsgBox("文件夹已存在,是否更新内容?", vbOKCancel, "Caution!")

  If ReturnValue=2 Then Exit Sub

  Else

  MyFile.CreateFolder (FolderPath & "" & FolderName & "-Saved")

  Set MyFile=Nothing

  End If

  Application.ScreenUpdating=False

  Application.DisplayAlerts=False

  Dim i As Integer

  For i=1 To Sheets.Count

  Set Wk=Workbooks.Add

  Workbooks(BN).Sheets(i).Copy before:=Wksheets("Sheet1")

  Wk.SaveAs FolderPath & "" & FolderName & "-Saved" & ThisWorkbook.Sheets(i).Name

  Wk.Close

  Next i

  Application.DisplayAlerts=True

  Application.ScreenUpdating=True

  End Sub