我目前正在从事一个项目,该项目包括基于表数据和文档模板在新工作簿中生成各种文档示例。这是我尝试过的:
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”)已经存在,因此-超出范围。您如何建议将生成最终结果的选项指示为解决此问题的新工作簿?提前致谢。
答案 0 :(得分:3)
尝试一下:
声明变量As Worksheet
,然后将其设置为add方法。
Dim oWorkSheet As worksheet
Set oWorkSheet = ThisWorkbook.Sheets.Add(, , 1, xlWorksheet)
oWorkSheet.Name = "nameOfYourSheet" 'must be different from the others sheets.
答案 1 :(得分:1)
替换
Worksheets.Add.Name = Sheets("Staff").Cells(i, 1).Value
使用
With Worksheets.Add
.Name = Sheets("Staff").Cells(i, 1).Value
End With