[算表] 不固定列资料复制贴上至不同档案

楼主: 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