从一个范围内生成新的工作表,并允许使用来自一个范围内的“IfElse”来强制新工作表应包含

我find并更改了简单代码,以便从主文件中创build新工作表并命名该范围内的工作表。 代码如下,工作没有错误。

我想在代码中包含一个相邻范围( A11 ),这将确定将使用MasterReportMasterReport2作为副本创build新/复制的工作表。 如果范围A11有一个“P”,我希望从MasterReport复制新的工作表,如果范围A11包含一个“S”,要复制的新工作表将来自MasterReport2MasterReportMasterReport2是隐藏的表单。

最有可能需要确定第二个范围,并使用IfElse但在当前的代码应该这样去。 希望保持新的表格名称将反映范围C11值。

 Dim MyCell As Range, MyRange As Range Set MyRange = Sheets("ProjectDefinition").Range("c11") Set MyRange = Range(MyRange, MyRange.End(xlDown)) For Each MyCell In MyRange Sheets("MasterReport").Select ActiveSheet.Copy After:=Sheets(Sheets.Count) Sheets(Sheets.Count).Name = MyCell.Value Next MyCell 

有很多方法来获得可选的termplate工作表,但我相信Select Case语句将提供最好的可扩展性。

 Dim myCell As Range, strWSname As String With Sheets("ProjectDefinition") For Each myCell In .Range(.Range("C11"), .Range("C11").End(xlDown)) Select Case UCase(myCell.Offset(0, -2)) Case "S" strWSname = "MasterReport2" Case "P" strWSname = "MasterReport" Case Else strWSname = "MasterReport" 'default End Select Sheets(strWSname).Copy After:=Sheets(Sheets.Count) Sheets(Sheets.Count).Name = myCell.Value Next myCell End With