【问题标题】:Excel Copy active sheet and specified sheets to new workbookExcel 将活动工作表和指定工作表复制到新工作簿
【发布时间】:2017-01-04 22:42:59
【问题描述】:

我试图将活动工作表和 2 个指定工作表复制到一个新工作簿,然后让宏继续在新工作簿上运行以在我保存之前更改一些内容

我想按工作表代号复制工作表

  • 要复制的第一个工作表 3 将是“活动工作表”
  • 第二张表格代号为“DropDown_Sheet_1_VB”
  • 第三张表格代号为“Control_Sheet_VB”

示例代码。

Sub Create_Work_Order()

Workbooks.Add

ActiveSheet.Copy 'copy to new workbook
DropDown_Sheet_1_VB.Copy 'also copy to new workbook
Control_Sheet_VB.Copy 'also copy to new workbook

Dim NewWB As Workbook

NewWB.ActiveSheet.Range("A1").Copy 'do stuff on new workbook
NewWB.Save

End Sub

【问题讨论】:

    标签: vba excel


    【解决方案1】:

    除了复制 A1 范围之外,我不知道最后的内容是什么,但我也把它放在那里。

    您只需要在开始时指定工作簿对象(在我的示例中为 wrk,在您的示例中为 NewWB - 变量名无关紧要),并告诉 Copy 方法复制的位置。您会看到我将第一个参数 - 即 :Before - 指定为 wrk.Worksheets(1),因此复制的工作表将在新工作簿中的第一个工作表之前复制。

    Sub Create_Work_Order()
    Dim currentWrk As Workbook
    Dim wrk As Workbook
    
    Set currentWrk = ActiveWorkbook
    Set wrk = Workbooks.Add
    
    currentWrk.ActiveSheet.Copy wrk.Worksheets(1)
    DropDown_Sheet_1_VB.Copy wrk.Worksheets(1)
    Control_Sheet_VB.Copy wrk.Worksheets(1)
    
    'wrk.ActiveSheet.Range("A1").Copy 'do stuff on new workbook
    wrk.Save
    
    ' EDIT: I added following to change the functions to refer to the new file
    wrk.ChangeLink currentWrk.FullName, wrk.FullName, xlExcelLinks  
    wrk.Save
    
    
    End Sub
    

    【讨论】:

    • 有没有办法在没有引用原始工作簿的公式的情况下复制工作表?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多