VBA代码在创建子版本后返回到Workbook的主版本

时间:2014-02-24 20:32:43

标签: excel vba excel-vba

我有一个工作簿,我将其用作主模板,它具有多个变体,每个变体都使用不同的标签创建,并发送到不同的分发列表。如何在保存并发送每个“子”版本后告诉VBA返回主工作簿?这是我的其中一个子版本的代码:

Sub Alignment_Final()

'

With Application
    .ScreenUpdating = False
    .EnableEvents = False
    .DisplayAlerts = False

End With

Sheets(Array("T1", "T2", "T3", "T4", "T5", "CS", "Updates", "Branch Updates", "CS Updates", "Control", "BDE", "Termed BBO", "Alignment")). _
    Select
Sheets("Branch Updates").Activate
ActiveWindow.SelectedSheets.Delete
Sheets("Branch Alignment").Activate
FPath = "C:\Users\mmarshall\Documents\Alignment"
FName = "Alignment" & Format(Date, "dd-mm-yyyy") & ".xlsm"
ActiveWorkbook.SaveAs Filename:=FPath & "\" & FName

Call Mail_To_DL

With Application
    .ScreenUpdating = True
    .EnableEvents = True
    .DisplayAlerts = True

End With

End Sub

这很好用,但它让我在新版本的工作簿中。创建完成后,我需要返回主工作簿(称为主对齐)并通过电子邮件发送以创建更多版本,每个版本中包含不同的工作表。如果这是初步的,我道歉。我在Windows 7上运行Excel 2010。

1 个答案:

答案 0 :(得分:1)

如果在代码的开头将主工作簿定义为工作簿对象,则可以稍后再次激活该工作簿。

像这样定义主工作簿(假设在开始运行代码时它是您的活动工作簿):

Dim MasterWb As Workbook
Set MasterWb = ActiveWorkbook

然后,当您想再次激活该工作簿时,可以通过以下方式执行此操作:

MasterWb.Activate