如何根据分隔符值将Excel工作表拆分为多个工作表?

时间:2017-01-19 02:24:37

标签: excel vba excel-vba

我正在尝试将Excel工作表拆分为多个工作表。我试图拆分的工作表上有很多表,它们各自用“-----”分隔,它出现在A列的每个表之后。有没有人知道如何在每个表之前和之后提取信息“ -----“把它放到一张新纸上?我不介意将字符串复制到新工作表上。如果我在一张以“-----”分隔的工作表上有10个表格,我想要10张,每张都有不同的表格。

我遗憾的是还没有任何代码,因为我没有尝试在重复值之间提取信息。我非常欣赏这些想法,即使只是为了实现个别步骤。

1 个答案:

答案 0 :(得分:2)

这应该有效。根据您的要求修改searchString。它不会为第一组数据创建新工作表,这意味着它将创建9个附加工作表,原始工作表将是第10页

Option Explicit

Sub serachAndCopy()
    Dim searchString As String
    searchString = "---"

    Dim lastRow As Integer, i As Integer
    lastRow = 0

    Dim thisSheet As Worksheet
    Set thisSheet = Sheets("Sheet1")

    Dim sh As Worksheet

    For i = thisSheet.Range("A" & Rows.Count).End(xlUp).Row To 1 Step -1
        If (thisSheet.Range("A" & i) = searchString) Then
            If lastRow = 0 Then
                lastRow = i
                Else
                Sheets.Add After:=Sheets(Sheets.Count)
                Set sh = ActiveSheet
                thisSheet.Rows(i + 1 & ":" & lastRow).Copy Destination:=sh.Rows("1:1")

                thisSheet.Rows(i + 1 & ":" & lastRow).Delete
                lastRow = i
            End If
        End If
    Next i
End Sub