數據如上圖所示,點擊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為私有的,局部方法.