看板 Office 關於我們 聯絡資訊
軟體: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
soyoso: 縮短上想到是以迴圈,範圍偏移上則以range.offset 07/13 10:09
soyoso: 如資料筆數是以工作表"PACK"的最後有資料的列號決定的話 07/13 10:11
soyoso: 可以range.find或range.end來取得該儲存格,回傳列號則加 07/13 10:13
soyoso: 如要取得工作表數量的話以worksheets.count或sheets.count 07/13 10:17
shezion: 感謝SOYOSO大,可以再請問一下這樣的迴圈要怎麼寫? 07/13 10:49
soyoso: 應可以for..next,終止值可以回文所取得的列號或是工作表 07/13 10:51
soyoso: 數量 07/13 10:51
soyoso: 迴圈的變數則用於工作表1範圍的偏移和活頁簿s內工作表的索 07/13 10:56
soyoso: 引值 07/13 10:56
shezion: 哦哦 謝SO大 馬上來試試 07/13 11:57