excel - 将模板复制到新工作表中,名称来自单元格
问题描述
我创建了一个生成新工作表的工作簿,其中新工作表的名称取自第一个工作表中的单元格。
我希望这些新工作表成为另一张工作表的副本。
所以表格“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
解决方案
无需添加新工作表,只需使用Worksheet.Copy 方法直接复制它:
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
推荐阅读
- android - 只有使用两个组合关键字搜索时才能找到应用名称
- date - 如何获得上周日的日期?
- flutter - Flutter Card 中的文本和图像
- python-3.x - 无法访问语音模型文件
- linux - aws firecracker 如何处理 vcpu?
- angular6 - 是否可以在角度 6 中禁用按钮阵列
- python - 在数据框中创建一个新的条件列,其中包含来自多列的值
- perl - 如何将一个文件上的两个 html 标签拆分为单独的 lucene 文档?
- bash - bash:如何截取 gnome-terminal/terminator/xterm 的屏幕输出
- java - Java尝试资源获取错误但继续