Board logo

標題: 如何複製工作頁到第二個檔案 [打印本頁]

作者: enoch    時間: 2011-6-26 23:13     標題: 如何跟據資料匯出檔案

請問各位高手
如何跟據下面資料
將有關工作表另存成個別檔案,並存放在c:\import 內, 例如:
檔案AA 包括 工作表 sheet1, sheet2, sheet3, 及book1,book2 內的所有工作表
檔案BB 包括 工作表 sheet4, sheet5, sheet6, book3內的所有工作表

sheet1-sheet6 在現有工作表內
book1- book3 存放在C:\export內

新檔案名  工作表或檔案名稱
AA        sheet1
AA        sheet2
AA        sheet3
AA        book1.xls
AA        book2.xls
BB        sheet4
BB        sheet5
BB        sheet6
BB        book3.xls
[attach]6844[/attach]
作者: enoch    時間: 2011-7-8 17:54

請問有高手可以幫到忙嗎?
作者: GBKEE    時間: 2011-7-8 19:53

本帖最後由 GBKEE 於 2011-7-8 19:54 編輯

回復 2# enoch
將有關工作表另存成個別檔案,並存放在c:\import 內, 例如:
檔案AA 包括 工作表 sheet1, sheet2, sheet3, 及book1,book2 內的所有工作表
檔案BB 包括 工作表 sheet4, sheet5, sheet6, book3內的所有工作表
sheet1, sheet2, sheet3,sheet4, sheet5, sheet6 是開啟中檔案的工作表嗎?
作者: enoch    時間: 2011-7-9 00:30

GBKEE
sheet1, sheet2, sheet3,sheet4, sheet5, sheet6 包括提供資料的工作表
都是在開啟中檔案 summary.xls 的工作表內
而 book2, 及 book3 是存在於c:\export\內未開啟的檔案
現希望跟據資料, 將工作表 sheet1, sheet2, sheet3, 及 book1,book2 檔案內的所有工作表
結合成新檔案AA.xls 並存於 c:\test\
請幫忙
作者: GBKEE    時間: 2011-7-9 08:52

本帖最後由 GBKEE 於 2011-7-9 10:40 編輯

回復 4# enoch
試試看
  1. Sub Ex()
  2.     Dim NewBook As Workbook
  3.     With Workbooks("summary.xls")
  4.         '''''''''''''''''''''''''''''''''''
  5.         Set NewBook = Workbooks.Open("c:\export\BOOK1.XLS")     '開啟BOOK1
  6.         With Workbooks.Open("c:\export\BOOK2.XLS")              '開啟BOOK2
  7.             .Sheets.Copy After:=NewBook.Sheets(NewBook.Sheets.Count) '全部工作表複製到 BOOK1的後面
  8.             .Close False                                        '關閉BOOK2 不存檔
  9.         End With
  10.         .Sheets(Array("Sheet1", "Sheet2", "Sheet3")).Copy After:=NewBook.Sheets(NewBook.Sheets.Count)
  11.                                                                 '所選的工作表複製到 BOOK1的後面
  12.         NewBook.Close True, "c:\test\AA.XLS"                    '關閉BOOK1 存檔為 "c:\test\AA.XLS"
  13.         ''''''''''''''''''''''''''''''''''''''''''
  14.         Set NewBook = Workbooks.Open("c:\export\BOOK3.XLS")     '開啟BOOK3
  15.         .Sheets(Array("Sheet4", "Sheet5", "Sheet6")).Copy After:=NewBook.Sheets(NewBook.Sheets.Count)
  16.                                                                 '所選的工作表複製到 BOOK3的後面
  17.         NewBook.Close True, "c:\test\BB.XLS"                    '關閉BOOK3 存檔為 "c:\test\BB.XLS"
  18.     End With
  19. End Sub
複製代碼

作者: enoch    時間: 2011-7-10 00:20

不好意思, 誤會了我的問題,
其實以上只是例子
檔案及工作表名稱及資料多少其實不會固定
作者: GBKEE    時間: 2011-7-10 08:38

回復 6# enoch
如此的話 為何你1樓的附檔只有三個工作表
作者: enoch    時間: 2011-7-10 22:31     標題: 如何複製工作頁到第二個檔案

我想將工作頁複製到第二個檔案的最後面,

   fileN = Cells(2, 1)
    sheetn = Cells(2, 2)
Sheets(sheetN).Copy before:=Workbooks(fileN).Sheets(1)

但結果出現錯誤, 陳列索引超出範圍, 請問錯在何處及應如何修改
請指教
作者: chin15    時間: 2011-7-10 22:44

Sheets(sheetN).Copy before:=Workbooks(fileN).Sheets(1)

是複製到第二個工作簿的最前面
語句應沒問題,也許是你第二個工作簿沒打開。
作者: enoch    時間: 2011-7-10 22:57

檢查過檔案有開啟,及附上整個巨集內容,
請指教錯在何處

Sub export()

    Sheets("export").Select
    Range("A1").Select
    fileN = Cells(2, 1)
    sheetn = Cells(2, 2)
     Workbooks.Add
   
ChDir "C:\"
ActiveWorkbook.SaveAs Filename:=fileN
ThisWorkbook.Activate

Sheets(sheetn).Select
Sheets(sheetn).Copy before:=Workbooks(fileN).Sheets(1)

End Sub




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