Excel 将定义的图纸后的图纸复制到各个文件

Excel 将定义的图纸后的图纸复制到各个文件,excel,vba,Excel,Vba,我想将我的文件拆分为要复制到同一路径中的单个文件。VBA宏应拆分所有图纸。宏应以定义的工作表之后的第一个工作表开始(例如“测试”) 我试图找到一个解决方案来定义一个工作表,但没有成功 Sub Splitbook() Dim xPath As String xPath = Application.ActiveWorkbook.Path Application.ScreenUpdating = False Application.DisplayAlerts = Fal

我想将我的文件拆分为要复制到同一路径中的单个文件。VBA宏应拆分所有图纸。宏应以定义的工作表之后的第一个工作表开始(例如“测试”)

我试图找到一个解决方案来定义一个工作表,但没有成功

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