EXCEl表中提取相同內容

將A列中相同的內容的行提取出來單獨生成新的excel文件,生成的文件名爲A列的內容。生成的文件最好自帶表頭。

 

Sub 提取相同內容()

 Dim arr
    arr = Range("A1:C" & [a65536].End(3).Row)
     
    Dim i As Long, wName As String, wPath As String
    wName = "分類彙總" & Format(Now(), "hhmmss")
    Dim dc As Object, Wb As Workbook, n As Long
    Set dc = CreateObject("Scripting.dictionary")
     
    wPath = ThisWorkbook.Path & "\" & wName
    MkDir wPath
    For i = 2 To UBound(arr)
        If Not dc.Exists(arr(i, 1)) Then
            Set Wb = Workbooks.Add
            Wb.SaveAs wPath & "\" & arr(i, 1) & ".xls"   '001
            Wb.Sheets(1).Name = arr(i, 1)
            '填寫表頭
            Wb.Sheets(1).[A1] = arr(1, 1)
            Wb.Sheets(1).[B1] = arr(1, 2)
            Wb.Sheets(1).[C1] = arr(1, 3)
            dc.Add arr(i, 1), ""
        End If
        With Workbooks(arr(i, 1) & ".xls").Sheets(1)   '002
            n = .[a65536].End(3).Row + 1
            .Cells(n, 1) = arr(i, 1)
            .Cells(n, 2) = arr(i, 2)
            .Cells(n, 3) = arr(i, 3)
        End With
    Next
     
    Dim ar
    ar = dc.Keys
    For i = 0 To UBound(ar)
        Workbooks(ar(i) & ".xls").Close True   '003
    Next
     
End Sub

作者:LiW

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章