[算表] 不固定列資料複製貼上至不同檔案

作者: shezion (= =)   2017-07-13 09:41:36
軟體:excel
版本:2013
想請各位大大幫忙看看以下案例如何縮短VN指令碼
目前我有兩筆excel檔案,一筆名為"PACK",一筆為現正開啟中檔案"A",
我想要將PACK中固定範圍分別依序複製貼到目前開啟中檔案的各個工作表
中,因為每次"PACK"的資料筆數不固定但不會超過50筆,而"A"的工作表數
也是不固定的,但會和"PACK"的資料筆數相同。因為我是新手所以目前只能
土法煉鋼,不管有幾筆資料要截取,都讓它抓50筆試試看。
EX:
Sub 複製貼上()
s = ThisWorkbook.Name
Filename = "X:\PACK.xls"
Workbooks.Open Filename
Workbooks("PACK").Worksheets("工作表1").Range("A4:J5").Copy _
Destination:=Workbooks(s).Sheets(1).[A8]
Workbooks("PACK").Worksheets("工作表1").Range("A6:J7").Copy _
Destination:=Workbooks(s).Sheets(2).[A8]
.
.
.
Workbooks("PACK").Worksheets("工作表1").Range("A82:J83").Copy _
Destination:=Workbooks(s).Sheets(40).[A8]
這樣跑的過程會出現"執行階段錯誤、陣列索引超出範圍"的錯誤訊息,雖然
需要截取的資料仍能順利抓到,但因為指令只會執行到實際有資料的筆數,
所以在後面的有些調整格式指令就通通都不會執行下去。
作者: soyoso (我是耀宗)   2017-07-13 10:09:00
縮短上想到是以迴圈,範圍偏移上則以range.offset如資料筆數是以工作表"PACK"的最後有資料的列號決定的話可以range.find或range.end來取得該儲存格,回傳列號則加如要取得工作表數量的話以worksheets.count或sheets.count
作者: shezion (= =)   2017-07-13 10:49:00
感謝SOYOSO大,可以再請問一下這樣的迴圈要怎麼寫?
作者: soyoso (我是耀宗)   2017-07-13 10:51:00
應可以for..next,終止值可以回文所取得的列號或是工作表數量迴圈的變數則用於工作表1範圍的偏移和活頁簿s內工作表的索引值
作者: shezion (= =)   2017-07-13 11:57:00
哦哦 謝SO大 馬上來試試

Links booklink

Contact Us: admin [ a t ] ucptt.com