【发布时间】:2017-06-05 15:12:27
【问题描述】:
我是 Excel VBA 的新手。我想根据单元格值插入单元格数。
我有 sheet1,我想使用 b4 作为要插入的工作表数量(这是一个模板)的参考。
例如,如果 b4 的值 = 4,我想复制模板表 4 次。
我如何在 vba 中做到这一点?
谢谢。 :)
【问题讨论】:
我是 Excel VBA 的新手。我想根据单元格值插入单元格数。
我有 sheet1,我想使用 b4 作为要插入的工作表数量(这是一个模板)的参考。
例如,如果 b4 的值 = 4,我想复制模板表 4 次。
我如何在 vba 中做到这一点?
谢谢。 :)
【问题讨论】:
没有魔法,在循环中一个一个地创建它们,将每个新的放在最后。编辑:您还想将它们重命名为 1、2、3、4、.. 所以:
Sub CreateSheets()
Dim i As Long
With ThisWorkbook.Sheets
For i = 1 To Sheet1.Range("B4").Value2
.Item("Template").Copy After:=.Item(.Count)
.Item(.Count).Name = i
Next
End With
End Sub
【讨论】:
或者类似的...
Sub CopyTemplate()
Dim ws As Worksheet, wsTemplate As Worksheet
Dim n As Integer, i As Long
Application.ScreenUpdating = False
Set ws = Sheets("Sheet1")
Set wsTemplate = Sheets("Template") 'Where Template is the name of Template Sheet, change it as required.
n = ws.Range("B4").Value
If n > 0 Then
For i = 1 To n
wsTemplate.Copy after:=Sheets(Sheets.Count)
ActiveSheet.Name = i
Next i
End If
Application.ScreenUpdating = True
End Sub
【讨论】:
这样的事情应该可以工作:
Sub copySheets()
Dim i As integer
Dim n As integer 'the amount of sheets
n = Cells(4, 2).Value 'b4
For i = 2 To n
If ActiveWorkbooks.Worksheets.Count < n Then 'Makes sure the sheets exists
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets.Add(After:= _
ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count))
End If
ws1.Copy ThisWorkbook.Sheets(Sheets.Count) 'copy data
Next i
End Sub
【讨论】: