返回列表 上一主題 發帖

利用陣列來複製貼上??

利用陣列來複製貼上??

假如有A1~50個檔案
複製每個檔案的RANGE(“A1:C20”)再加上一列D1~20=X
然後插入到B工作簿range(“A1”)
如果一個一個用copy-> insert方式EXCEL會出現錯誤(執行階段錯誤’1004’ 為避免資料遺失,EXCEL無法將空白儲存格移出工作表……….)

如果利用陣列方式
將50個檔案資料寫入陣列再一次貼到檔案B
請問要如何寫???
謝謝
小人物

回復 1# jasonwu0114


   
假如有A1~50個檔案 (還是工作表 )
要複製每個檔案的RANGE(“A1:C20”)再加上一列D1~20=X  什麼意思
=>要複製 A1:D20  對嗎?
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

本帖最後由 jasonwu0114 於 2014-2-21 13:12 編輯

回復 2# GBKEE


    假如有A1~50個檔案 (還是工作表 )
有50個workbooks(A1).sheet("工作表1"),workbooks(A2).sheet("工作表1")...........................

要複製每個檔案的RANGE(“A1:C20”)再加上一列D1~20=X  什麼意思
=>要複製 A1:D20  對嗎?

A1:C20是工作表內資料
想要在每一 列後面加上一欄日期(EX:2014/02/21)
變成A1:D20

麻煩GBKEE了
謝謝
小人物

TOP

有高手可以幫忙嗎
感恩
小人物

TOP

回復 3# jasonwu0114
先用同一檔案2個工作表,寫入第3工作表示範
  1. Sub ex()
  2. Dim ar(), Ay(1 To 20, 1 To 4)
  3. For i = 1 To 2
  4. With Sheets(i)
  5. For j = 1 To 20
  6.   For k = 1 To 3
  7.      Ay(j, k) = .Cells(j, k).Value
  8.   Next
  9.   Ay(j, 4) = Date
  10. ReDim Preserve ar(s)
  11. ar(s) = Application.Index(Ay, j)
  12. s = s + 1
  13. Next
  14. Erase Ay
  15. End With
  16. Next
  17. Sheets(3).[A1].Resize(s, 4) = Application.Transpose(Application.Transpose(ar))
  18. End Sub
複製代碼
學海無涯_不恥下問

TOP

回復 5# Hsieh
  1. Option Explicit
  2. '將50個檔案資料寫入陣列再一次貼到檔案B
  3. Sub Ex()
  4.     Dim Wb(1 To 2) As Workbook, AR(), S As Integer, E As Range
  5.     Set Wb(1) = Workbooks("檔案B")  '更正為檔案B的名稱
  6.     For Each Wb(2) In Workbooks  '50個檔案已開啟 含 檔案B
  7.         If Wb(2).Name <> Wb(1).Name Then
  8.         For Each E In Wb(2).Sheets(1).[A1:C20].Rows
  9.             ReDim Preserve AR(1 To 4, 0 To S)
  10.             AR(1, S) = E.Cells(1)
  11.             AR(2, S) = E.Cells(2)
  12.             AR(3, S) = E.Cells(3)
  13.             AR(4, S) = Date
  14.             S = S + 1
  15.         Next
  16.         End If
  17.     Next
  18.     With Wb(1).Sheets(1).[a1]  '檔案B
  19.         .CurrentRegion = ""
  20.         .Resize(S, 4) = Application.WorksheetFunction.Transpose(AR)
  21.     End With
  22. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 5# Hsieh
非常感謝
研究中
    另外想請教
ar(s) = Application.Index(Ay, j)
Application.Transpose(Application.Transpose(ar))
這2行的意思是???
小人物

TOP

        靜思自在 : 要批評別人時,先想想自己是否完美無缺。
返回列表 上一主題