使用 VBA 按模板生成文档

Generating documents by template using VBA

我目前正在开展一个项目,该项目基于 table 数据和文档模板在新工作簿中生成各种文档示例。这是我尝试过的:

Sub CopyData()
    Sheets("Staff").Select

    For i = 2 To 100000
        If Cells(i, 1).Value = "" Then
            i = 100000
            Exit For
        End If

        Sheets("TEMPLATE_TARGET").Select

        Range("Name").Value = Sheets("Staff").Cells(i, 1).Value & " " & _
        Range("Personalcode").Value = Sheets("Staff").Cells(i, 3).Value
        Range("Residence").Value = Sheets("Staff").Cells(i, 4).Value
        Range("Job").Value = Sheets("Staff").Cells(i, 5).Value
        Cells.copy
        Selection.Copy

        Worksheets.Add.Name = Sheets("Staff").Cells(i, 1).Value

        Application.DisplayAlerts = False
        ActiveSheet.Paste
        Application.CutCopyMode = False

        Sheets("Staff").Select
    Next i

    MsgBox ("YAY")
End Sub

不幸的是,我的代码在进程中间停止执行,声称工作表 ("Staff") 已经存在,因此 - 超出范围。您如何建议将生成最终结果的选项指定为解决此问题的新工作簿?提前致谢。

替换

Worksheets.Add.Name = Sheets("Staff").Cells(i, 1).Value

With Worksheets.Add
    .Name = Sheets("Staff").Cells(i, 1).Value
End With

试试这个:

声明一个变量As Worksheet,然后将其设置到add方法中。

Dim oWorkSheet As worksheet

Set oWorkSheet = ThisWorkbook.Sheets.Add(, , 1, xlWorksheet)
oWorkSheet.Name = "nameOfYourSheet" 'must be different from the others sheets.