从一个范围内生成新的工作表,并允许使用来自一个范围内的“IfElse”来强制新工作表应包含
我find并更改了简单代码,以便从主文件中创build新工作表并命名该范围内的工作表。 代码如下,工作没有错误。
我想在代码中包含一个相邻范围( A11
),这将确定将使用MasterReport
或MasterReport2
作为副本创build新/复制的工作表。 如果范围A11
有一个“P”,我希望从MasterReport
复制新的工作表,如果范围A11
包含一个“S”,要复制的新工作表将来自MasterReport2
。 MasterReport
和MasterReport2
是隐藏的表单。
最有可能需要确定第二个范围,并使用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