【问题标题】:Create a copy of a worksheet and name it based on a list创建工作表的副本并根据列表命名
【发布时间】:2017-03-16 08:12:50
【问题描述】:

您好,我正在尝试在工作簿中为区域中的每个条目创建工作表的副本,然后根据该区域中当前单元格的值重命名工作表。它以前可以工作,但现在它没有命名新工作表。如果我制作空白工作表,它会命名它们,但是如果我复制工作表,它不会正确命名工作表。我还尝试将每张纸上 C1 的值设置为该范围内的值。以下是我的代码:

    Sub CreateSEMSheets()
    On Error GoTo GetOut


    Dim MyCell As Range, MyRange As Range

    Set MyRange = Sheets("Strategic End Market Data").Range("SEMListGenerated")

    For Each MyCell In MyRange
    If MyCell.Value = "" Then GoTo GetOut

        Sheets("StrategicMktPlan").Copy After:=Sheets(Sheets.Count)
        Sheets(Sheets.Count).Name = "SMP - " & MyCell.Value
        Sheets(Sheets.Count).Range("C1").Value = MyCell.Value
    Next MyCell

GetOut:

End Sub

请帮忙!!!提前致谢。

编辑:我弄清楚它为什么不起作用 - 有一个隐藏的工作表是工作簿中的最后一个工作表,它一遍又一遍地重命名它。知道如何防止这种情况发生吗?

【问题讨论】:

    标签: vba excel


    【解决方案1】:

    在 Worksheet 对象的 Copy() 方法之后,新创建的工作表是 active 之一:

    For Each MyCell In MyRange
        If MyCell.Value = "" Then GoTo GetOut
    
        Sheets("StrategicMktPlan").Copy After:=Sheets(Sheets.Count)
        With ActiveSheet
            .Name = "SMP - " & MyCell.Value
            .Range("C1").Value = MyCell.Value
         End With
    Next MyCell
    

    【讨论】:

    • 我尝试实现这一点,但由于某种原因它仍然提前停止 - 它创建一个工作表,重命名并将值复制到 C1,但之后它复制原始工作表并退出,即使有列表中还剩下几项。没有任何隐藏的床单或类似的东西可以挂起来,所以我束手无策......
    • 我想通了 - 单元格的值太长并且抛出错误。我调整了单元格的大小,它就像一个魅力。谢谢!!
    • 不客气。然后,您可能想接受我的回答,并让阅读此主题的人们这是您问题的有效答案。谢谢!
    【解决方案2】:

    根据您的编辑,您可以使用:

    Sub VisibleSheetsCount()
    'UpdatebyKutoolsforExcel20150909
    ' https://www.extendoffice.com/documents/excel/3187-excel-count-visible-sheets.html
        Dim xSht As Variant
        Dim I As Long
        For Each xSht In ActiveWorkbook.Sheets
            If xSht.Visible Then I = I + 1
        Next
        MsgBox I & " sheets are visible", , "Kutools for Excel"
    End Sub
    

    然后做.Copy(After:=Sheets(I))我认为可行。

    【讨论】:

      猜你喜欢
      • 2015-08-06
      • 2018-04-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多