【问题标题】:Copy templete into new sheet, with name from cell将模板复制到新工作表中,名称来自单元格
【发布时间】:2020-12-17 13:46:19
【问题描述】:

我创建了一个生成新工作表的工作簿,其中新工作表的名称取自第一个工作表中的单元格。

我希望这些新工作表是另一张工作表的副本。

所以表格“dispostition”是我在“a2:a2000”范围内写名称的地方。例如。 233.

233 成为一个新工作表,它是工作表“模板”的副本。

我对 VBA 非常缺乏经验,所以代码是我在网上资助和修改的。

我尝试将 Worksheet.add 更改为 Worksheet(template).copy

但这似乎不起作用。

Sub CreateSheets()
    Dim StartSheet As Worksheet
    Set StartSheet = ActiveSheet
    Dim rng As Range
    Dim cell As Range
    On Error GoTo Errorhandling
    
    If MsgBox("Opret ark baseret på løbenumre?", vbYesNo + vbQuestion) = vbNo Then
    Exit Sub
    End If
    
    Set rng = Range("A2:a2000")
    For Each cell In rng
        If cell <> "" Then
            Worksheets.Add(After:=Worksheets("disposition")).Name = cell
            Sheets("Template").Copy Worksheets(cell).Range("A1")
        End If
    Next cell
    
    Errorhandling:
    StartSheet.Activate
End Sub

【问题讨论】:

    标签: excel vba templates copy


    【解决方案1】:

    无需添加新工作表,只需使用Worksheet.Copy method 直接复制即可:

    If cell <> "" Then
        Worksheets("Template").Copy After:=Worksheets("disposition") 'adds a copy of the template sheet after disposition
        Worksheets(Worksheets("disposition").Index + 1).Name = cell.value 'renames the new added template copy (which is +1 after disposition sheet)
    End If
    

    【讨论】:

    • 非常感谢,它工作得几乎完美!但是,如果我首先制作了两个新的 shreets,后来发现我需要一个额外的,因此将一个 xtra 名称放入索引中并再次运行 vba,它会将新的 xtra 表命名为“模板 2”。这可以通过某种方式解决吗?
    • 显示代码:Sub CreateSheets() Dim StartSheet As Worksheet Set StartSheet = ActiveSheet Dim rng As Range Dim cell As Range On Error GoTo Errorhandling If MsgBox("Opret ark baseret på løbenumre?", vbYesNo + vbQuestion) = vbNo Then Exit Sub End If Set rng = Range("A2:a2000") For Each cell In rng If cell &lt;&gt; "" Then Worksheets("Template").Copy After:=Worksheets("disposition") Worksheets(Worksheets("disposition").Index + 1).Name = cell End If Next cell Errorhandling: StartSheet.Activate End Sub
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-09
    • 2013-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多