以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [讨论]ws.Copy(Before:=.Item(1))速度慢 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=188442) |
-- 作者:puma -- 发布时间:2023/9/20 15:39:00 -- [讨论]ws.Copy(Before:=.Item(1))速度慢 需求:打开tb1 打开tb2 把tb1所有的sheet复制到tb2里 问题: 速度有点慢,使用ws.Copy(Before:=.Item(1)) ,如果tb1里有30个sheet,需要等待一会儿,效率有点低,有其他方法吗? 源码: Dim Wb As MSExcel.Workbook = App.WorkBooks.open(tb1) Dim Ws As MSExcel.WorkSheet Dim WbNew As MSExcel.Workbook = App.WorkBooks.open(tb2) ShowAppWindow(tb3, 2) Dim wsNew As MSExcel.WorkSheet = Wb.WorkSheets(1) \'指定要复制的工作表 \'\'\'获取sheet名称 For Each WsName As MSExcel.WorkSheet In Wb.WorkSheets \' Output.Show(WsName.Name) ws = Wb.WorkSheets(WsName.Name) With WbNew.WorkSheets ws.Copy(Before:=.Item(1))\'复制到最前面 End With Next WbNew.Save
|
-- 作者:有点蓝 -- 发布时间:2023/9/20 15:57:00 -- 这个是execl组件自己的功能,慢也没有办法。 没有其它办法
|
-- 作者:puma -- 发布时间:2023/9/20 16:13:00 -- 有一次性,把所有工作簿的sheet移动到另一个工作簿的sheet里吗? 不用for循环 |
-- 作者:有点蓝 -- 发布时间:2023/9/20 16:24:00 -- 没见过哦,都要循环的。 如果是移动,而不是复制,这个应该会快一点:http://www.foxtable.com/webhelp/topics/1465.htm
[此贴子已经被作者于2023/9/20 16:24:30编辑过]
|