Foxtable(狐表)用户栏目专家坐堂 → [讨论]ws.Copy(Before:=.Item(1))速度慢


  共有2917人关注过本帖树形打印复制链接

主题:[讨论]ws.Copy(Before:=.Item(1))速度慢

帅哥哟,离线,有人找我吗?
puma
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:358 积分:3005 威望:0 精华:0 注册:2023/6/7 16:07:00
[讨论]ws.Copy(Before:=.Item(1))速度慢  发帖心情 Post By:2023/9/20 15:39:00 [显示全部帖子]

需求:打开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

 回到顶部
帅哥哟,离线,有人找我吗?
puma
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:358 积分:3005 威望:0 精华:0 注册:2023/6/7 16:07:00
  发帖心情 Post By:2023/9/20 16:13:00 [显示全部帖子]

有一次性,把所有工作簿的sheet移动到另一个工作簿的sheet里吗?  不用for循环

 回到顶部