網路城邦
上一篇 回創作列表 下一篇   字體:
[Excel VBA] 活頁簿檔案之間的工作表複製
2009/03/07 18:55:34瀏覽49518|回應2|推薦1

活頁簿檔案之間的工作表複製, 基本上有三個方法:

(一) 整張工作表的複製:

例如要把 Book2.xls 的 sheet3 複製到 Book3 裡, 插入 Sheet2 的前面:

(Book3和 Book2.xls 都是在檔案已開啟的狀態)

  Workbooks("Book2.xls").Sheets("Sheet3").Copy before:=Workbooks("Book3").Sheets("Sheet2")

(二) 整張工作表所有儲存格的 "複製-貼上"

例如要把 Book2.xls 的 sheet3 複製到 Book3 的 Sheet2 裡面:

(Book3和 Book2.xls 都是在檔案已開啟的狀態)

 Workbooks("Book2.xls").Worksheets("sheet3").Cells.Copy
    Workbooks("Book3").Worksheets("sheet2").Paste

(三) 把 Excel 活頁簿當成來源資料庫:

假設要匯入 "C:\Book2.xls" 的 "sheet3", 不需開啟  "C:\Book2.xls" :

Sub 工作表匯入()

    ActiveWorkbook.Worksheets.Add
    With ActiveSheet.QueryTables.Add(Connection:=Array( _
        "OLEDB;Provider=Microsoft.Jet.OLEDB.4.0;Password="""";User ID=Admin;Data Source=C:\Book2.xls;Mode=Share Deny Write;Extended Properties=""H" _
        , _
        "DR=NO;"";Jet OLEDB:System database="""";Jet OLEDB:Registry Path="""";Jet OLEDB:Database Password="""";Jet OLEDB:Engine Type=35;Jet OLED" _
        , _
        "B:Database Locking Mode=0;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Passwo" _
        , _
        "rd="""";Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Don't Copy Locale on Compact=False;Jet O" _
        , "LEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False"), Destination _
        :=Range("A1"))
        .CommandType = xlCmdTable
        .CommandText = Array("Sheet3$")
        .Name = "Book2"
        .FieldNames = False
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .BackgroundQuery = True
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .PreserveColumnInfo = True
        .SourceDataFile = "C:\Book2.xls"
        .Refresh BackgroundQuery:=False
    End With
End Sub

 

( 興趣嗜好電腦3C )
回應 推薦文章 列印 加入我的文摘
上一篇 回創作列表 下一篇

引用
引用網址:https://classic-blog.udn.com/article/trackback.jsp?uid=WayCheng&aid=2719607

 回應文章

anderson
移動複製工作表
2010/09/22 11:19

 另一個方法,

①先開啟目的地  的EXCEL 檔

②在 要移動 或 複製的工作表 標籤上 ,按右鍵,選  移動或複製(M)

③選 活頁簿..

供您參考!

http://tw.myblog.yahoo.com/andersonlai-blog

ThisIsTheWay(WayCheng) 於 2010-10-04 08:41 回覆:
謝謝您提供的指點,
不過,
我這裡說的是 Excel VBA 的做法。
(^_^)


等級:
留言加入好友
只想複製來源檔的幾格有辦法嗎?
2010/06/23 21:33

首先感謝你--回答了別人的發問讓我學到了抓取網站上的資料,發問的人應該也跟我一樣想計算股票的籌碼鎖定率,算出來後的運用方式:當黑手鎖定率達連續3天以上超過12%或-12%時該檔股票可能於高檔或低檔反轉進行波段走勢,算是一種"早知道"的作法

使用前先讀cherry這位發難先驅的想法文章,但因為太麻煩所以資料運算方面我作罷,目前還是下載熱心者每日提供的心血完成品,現在我想要運用它製成圖表

有沒有辦法只複製來源sheet同列其中的幾格(B2,H2,K2,L2)貼到指定檔案中的SHEET1上去? 而每列所抓的資料各存一個檔(依股票代號命名)         拜託!麻煩你!