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

看板Office作者 (= =)時間8年前 (2017/07/13 09:41), 編輯推噓0(0010)
留言10則, 2人參與, 最新討論串1/1
軟體: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] 這樣跑的過程會出現"執行階段錯誤、陣列索引超出範圍"的錯誤訊息,雖然 需要截取的資料仍能順利抓到,但因為指令只會執行到實際有資料的筆數, 所以在後面的有些調整格式指令就通通都不會執行下去。 -- 桃~● . ◢██◣ 猶  俺 園 ╱ ╱ █ ◥ 主公!救我! 如 中在 實 畫. . ╱ ╱ ╱ □︵□ / 取百 至 家 ●●Φ▃▃▃▃▃\ _◤●~▃▃▃▃ 敵萬 名 . . . . \ ╱ ╱ ~● 之軍 歸 ψfishhzy123 . . ▆▆crabwind改 洨 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 60.249.160.220 ※ 文章網址: https://www.ptt.cc/bbs/Office/M.1499910108.A.FAF.html

07/13 10:09, , 1F
縮短上想到是以迴圈,範圍偏移上則以range.offset
07/13 10:09, 1F

07/13 10:11, , 2F
如資料筆數是以工作表"PACK"的最後有資料的列號決定的話
07/13 10:11, 2F

07/13 10:13, , 3F
可以range.find或range.end來取得該儲存格,回傳列號則加
07/13 10:13, 3F

07/13 10:17, , 4F
如要取得工作表數量的話以worksheets.count或sheets.count
07/13 10:17, 4F

07/13 10:49, , 5F
感謝SOYOSO大,可以再請問一下這樣的迴圈要怎麼寫?
07/13 10:49, 5F

07/13 10:51, , 6F
應可以for..next,終止值可以回文所取得的列號或是工作表
07/13 10:51, 6F

07/13 10:51, , 7F
數量
07/13 10:51, 7F

07/13 10:56, , 8F
迴圈的變數則用於工作表1範圍的偏移和活頁簿s內工作表的索
07/13 10:56, 8F

07/13 10:56, , 9F
引值
07/13 10:56, 9F

07/13 11:57, , 10F
哦哦 謝SO大 馬上來試試
07/13 11:57, 10F
文章代碼(AID): #1PPi_S-l (Office)
文章代碼(AID): #1PPi_S-l (Office)