【VBA】VBA編寫的,將一列中相同的內容的行提取出來單獨生成文件


 

數據如上圖所示,點擊RUN后的運行結果如下:

 

得到該文件夾,文件夾內容如上圖。

代碼如下:

Private Sub Command_OLIVER()
    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

調用該sub

Sub 調用()
 Command_OLIVER
End Sub

注意:必須在同一模塊中call該sub,因為上述sub為私有的,局部方法.

附件下載

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM