Excel 将定义的图纸后的图纸复制到各个文件
我想将我的文件拆分为要复制到同一路径中的单个文件。VBA宏应拆分所有图纸。宏应以定义的工作表之后的第一个工作表开始(例如“测试”) 我试图找到一个解决方案来定义一个工作表,但没有成功Excel 将定义的图纸后的图纸复制到各个文件,excel,vba,Excel,Vba,我想将我的文件拆分为要复制到同一路径中的单个文件。VBA宏应拆分所有图纸。宏应以定义的工作表之后的第一个工作表开始(例如“测试”) 我试图找到一个解决方案来定义一个工作表,但没有成功 Sub Splitbook() Dim xPath As String xPath = Application.ActiveWorkbook.Path Application.ScreenUpdating = False Application.DisplayAlerts = Fal
Sub Splitbook()
Dim xPath As String
xPath = Application.ActiveWorkbook.Path
Application.ScreenUpdating = False
Application.DisplayAlerts = False
For Each xWs In ThisWorkbook.Sheets
xWs.Copy
Application.ActiveWorkbook.SaveAs Filename:=xPath & "\" & xWs.Name & ".xlsx"
Application.ActiveWorkbook.Close False
Next
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub
有一个worksheet.index函数。输入工作表的名称,获取其索引,然后仅获取大于要开始的索引的索引
dim wks as worksheet
dim startindex as integer
startindex = 0
for each wks in thisworkbook.worksheets
if wks.name = "targetsheet" then
startindex = wks.index
end if
if not startindex = 0 then
if wks.index > startindex then
'do some stuff
end if
end if
next
如果你不断改变床单的顺序,我不知道会发生什么
编辑:这是一个简单的测试,它会在移动时立即重新编制索引,以确保它们的顺序正确。使用
工作表。索引
识别要复制的工作表,如下所示:
Option Explicit
Sub Splitbook()
Dim xPath As String
xPath = ThisWorkbook.Path
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Dim i As Long
With ThisWorkbook
For i = .Worksheets("Test").Index + 1 To .Worksheets.Count
.Worksheets(i).Copy
Application.ActiveWorkbook.SaveAs Filename:=xPath & "\" & .Worksheets(i).Name & ".xlsx"
Application.ActiveWorkbook.Close False
Next
End With
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub