返回列表 上一主題 發帖

不同檔案間的複製

不同檔案間的複製

請問.....該怎麼從檔案1複製某些固定的儲存格至檔案2某些固定的儲存格??
例如: 在檔案1複製A3 A4 A5 A6 A7 A9 到檔案2的 B3 B4 B5 B10 B11 B12  (以上是隨便打的,沒有一定)
初學者color

回復 1# color790
你要複製儲存格的欄列 與 目的儲存格的欄列 都不是一連續範圍
所以將複製儲存格的值,儲存於字典物件.於目的儲存格一一給予
  1. Sub Ex()
  2. Dim D As Object, i As Integer, E As Range
  3. Set D = CreateObject("Scripting.Dictionary")
  4. i = 1
  5. For Each E In Workbooks("book1").Sheets("SHEET1").Range("A3:A7,A9")
  6. D(i) = E.Value
  7. i = i + 1
  8. Next
  9. i = 1
  10. For Each E In Workbooks("book2").Sheets("SHEET1").Range("B3:B5,B10:B12")
  11. E = D(i)
  12. i = i + 1
  13. Next
  14. End Sub
複製代碼

TOP

本帖最後由 color790 於 2010-9-28 23:24 編輯

謝謝GBKEE版主的解答,但這樣需要每次都keyin workbook name (因為每次檔案1&檔案2的檔名都不相同)
有沒有辦法在檔案1以 with activesheet 複製儲存格的值,儲存於字典物件後, 之後再至檔案2 以with activesheet 貼上 也就是分兩個vba程式,或是有更好的方法,感恩 .
初學者color

TOP

Sub yy()
With ActiveSheet
ary = Array(.[a3], .[a4], .[a5], .[a6], .[a7], .[a9])
End With
Workbooks(2).Activate
With ActiveSheet
ary2 = Array(.[b3], .[b4], .[b5], .[b10], .[b11], .[b12])
For i = 0 To 5
ary2(i).Value = ary(i)
Next
End With
End Sub

TOP

本帖最後由 color790 於 2010-9-29 00:56 編輯

回復 4# oobird

謝謝OOBIRD版主的回答
  1.請問...是不是要複製的檔案第一個開,要貼上的檔案第二個開
  2.為什麼要for i ...
  3.為什麼要0 to 5

另外問個小問題- 以前用office2003不會有這個問題,現在用2007版,就是要編輯個人工作活頁薄的巨集時,都會出現 " 無法在隱藏活頁薄編輯巨集 .... " 非得要打開PERSONAL.XLSB 才能編輯,而且PERSONAL關掉後巨集就不能使用,這個有解嗎? 2010版的也會這樣嗎?
初學者color

TOP

1.是的,在檔名不一定的情形下,以這樣方式才能決定誰是Workbooks(1),誰是Workbooks(2).
2.建立迴圈。
3.迴圈的次數(以你要複製的儲存格數字決定,陣列中內定值是從0開始。
2007,2010我都沒用過,無法理解或回覆這樣的問題。

TOP

太感謝兩位版主的幫忙~^^
初學者color

TOP

剛好需要用到 受益良多 感謝

TOP

謝謝分享~
另外想請教的是,我也是遇到每天要將某個檔的欄位插入另一個檔的某幾欄
檔名也是會照日期做更改
問題一:插入的動作是要改成?
問題二:在第一個檔案執行巨集時,是否可以跳出個表單讓User點選目前開啟的Excel的哪個來插入?
Eric.Tu

TOP

        靜思自在 : 知識要用心體會,才能變成自己的智慧。
返回列表 上一主題