Board logo

標題: 請問如何將工作表分另儲存成不同檔案 [打印本頁]

作者: enoch    時間: 2011-2-26 12:01     標題: 請問如何將工作表分另儲存成不同檔案

請問各位高手

請問能否跟據下面資料
將有關工作表另存成個別檔案,例如:
檔案AA 包括 工作表AA, sheet1, sheet2, sheet3
檔案BB 包括 工作表AA, sheet4, sheet5, sheet6, sheet7, sheet8

工作表1        工作表2
AA        sheet1
AA        sheet2
AA        sheet3
BB        sheet4
BB        sheet5
BB        sheet6
BB        sheet7
BB        sheet8

請多多指教
作者: Hsieh    時間: 2011-2-26 12:21

回復 1# enoch
  1. Sub nn()
  2. fd = "E:\Test\" '目標資料夾
  3. Set d = CreateObject("Scripting.Dictionary")
  4. With Sheets("Summary")
  5. For Each a In .Range(.[A2], .[A65536].End(xlUp))
  6.    If IsEmpty(d(a.Value)) Then
  7.      d(a.Value) = a & "," & a.Offset(, 1)
  8.      Else
  9.      d(a.Value) = d(a.Value) & "," & a.Offset(, 1)
  10.    End If
  11. Next
  12. For Each ky In d.keys
  13.   sh = Split(d(ky), ",")
  14.   fs = fd & ky & ".xls"
  15.   Sheets(sh).Copy
  16.   With ActiveWorkbook
  17.   .SaveAs fs
  18.   .Close
  19.   End With
  20. Next
  21. End With
  22. End Sub
複製代碼

作者: enoch    時間: 2011-2-26 12:37

Hsieh

謝謝你
但還有少少問題,
當重新執行巨集時,
因為檔已存在而出現ERROR
請問如何可以自動取代現有檔案

enoch
作者: Hsieh    時間: 2011-2-26 12:43

回復 3# enoch
  1. Sub nn()
  2. fd = "E:\Test\" '目標資料夾
  3. Set d = CreateObject("Scripting.Dictionary")
  4. With Sheets("Summary")
  5. For Each a In .Range(.[A2], .[A65536].End(xlUp))
  6.    If IsEmpty(d(a.Value)) Then
  7.      d(a.Value) = a & "," & a.Offset(, 1)
  8.      Else
  9.      d(a.Value) = d(a.Value) & "," & a.Offset(, 1)
  10.    End If
  11. Next
  12. For Each ky In d.keys
  13.   sh = Split(d(ky), ",")
  14.   fs = fd & ky & ".xls"
  15.   Sheets(sh).Copy
  16.   With ActiveWorkbook
  17.   If Dir(fs) <> "" Then Kill fs
  18.   .SaveAs fs
  19.   .Close
  20.   End With
  21. Next
  22. End With
  23. End Sub
複製代碼

作者: enoch    時間: 2011-2-26 12:56

Hsieh

謝謝你,問題已解決

enoch
作者: enoch    時間: 2011-7-5 22:13

若果同一問題,但有部份不是工作表, 而是檔案可以嗎?
例如:
檔案AA 包括 工作表AA, sheet1, sheet2, book1.xls
檔案BB 包括 工作表AA, sheet4, sheet5, sheet6, book2.xls, book3.xls

工作表1        工作表2
AA        sheet1
AA        sheet2
AA        book1.xls
BB        sheet4
BB        sheet5
BB        sheet6
BB        book2.xls
BB        book3.xls
作者: dechiuan999    時間: 2011-7-6 07:02

版主大大你好:

  請問為何此語法是用
For Each ky In d.keys才能取出items資料,
而為何For Each ky In d.items就無法取出資料呢?

感恩大大!
作者: GBKEE    時間: 2011-7-6 08:04

回復 7# dechiuan999
For Each ky In d.keys
       d( ky)      ->items
Next
For Each ky In d.items      
     ky    ->items
Next
作者: dechiuan999    時間: 2011-7-6 10:53

謝謝版主大大。
For Each ky In d.keys
       d( ky)      ->items
Next
For Each ky In d.items      
     ky    ->items
Next
dictionary真讓人著迷,
也好深奧哦!
淺顯例子也能顯示出如此變化。
真讓人受益良多。
感恩版主大大。




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)