【问题标题】:Copy a sheet to an open workbook without leaving the current workbook?将工作表复制到打开的工作簿而不离开当前工作簿?
【发布时间】:2017-01-24 05:24:30
【问题描述】:

我是 VBA 代码的新手。到目前为止,我已经成功地将我想要的工作表复制到另一个打开的工作簿中。如何在不离开当前工作簿的情况下执行此操作?

我已经四处寻找答案并尝试了 Application.ScreenUpdating = False 但这似乎没有任何效果,也许我没有正确使用它?

这是我到目前为止所得到的,它相当简单,但它可以复制工作表。

Sub Sample1()
Application.ScreenUpdating = False
Workbooks("Workbook1.xlsm").Sheets("Sheet1").CopyAfter:=Workbooks("Workbook2.xlsm").Sheets("Copy_After")
Application.ScreenUpdating = True
End Sub

【问题讨论】:

    标签: excel vba


    【解决方案1】:

    您所要做的就是在脚本的开头记录ActiveSheet 和脚本结束后的Activate

    Sub Sample1()
      Dim OriginalSheet as Worksheet
    
      Application.ScreenUpdating = False
    
      OriginalSheet = ActiveSheet
      Workbooks("Workbook1.xlsm").Sheets("Sheet1").CopyAfter:=Workbooks("Workbook2.xlsm").Sheets("Copy_After")
    
      OriginalSheet.Activate
    
      Application.ScreenUpdating = True
    End Sub
    

    【讨论】:

    • 传奇!这是完美的工作。我必须在“OriginalSheet = ActiveSheet”之前添加“Set”来修复对象变量错误,但它现在就像一个魅力。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-14
    • 2014-12-09
    • 1970-01-01
    相关资源
    最近更新 更多