[英]VBA excel code for copying sheets error
我想让复印机多次复印一张纸。 因此,我已经为第1周制定了一个星期的计划。现在,我希望该工作表再增加51次。 因此,该名称必须以2开头,并以52结尾。为了使此功能适用于x To y,我编写了以下代码:
Sub Copier()
Dim a As Integer
Dim b As Integer
a = InputBox("Enter begin number for making copy's")
b = InputBox("Enter end number for making copy's")
For x = a To b
'Loop to make x number copies.
ActiveWorkbook.ActiveSheet.Copy _
Before:=ActiveWorkbook.Sheets("x")
'The name of every copied sheet is a number.
Next
End Sub
当我执行此操作时,它给出一个错误:“执行期间错误9。下标超出范围。” (我翻译是因为我有荷兰语Excel。)
我看不到有什么问题,因为此代码是从Microsoft页面复制的。 有人知道吗?
Before:=ActiveWorkbook.Sheets("x")
这正在寻找名为“ x”的工作表。 您可能打算使用Sheets(x)
,它通过其索引号引用工作表。 但是,这不会命名工作表-您还没有此代码。
用Before:=ActiveWorkbook.Sheets(CStr(x))
替换Before:=ActiveWorkbook.Sheets("x")
Before:=ActiveWorkbook.Sheets(CStr(x))
Sheets("x")
寻找确切命名为“ x”的工作表
Sheets(x)
,如果x不是字符串类型,谁将寻找索引为x的表
Sheets(CStr(x))
,确保您寻找名为x的图纸。
在您的代码中,您使用了字符串“ x”。 如果要将x用作索引,则需要使用不带引号的x。
编辑
使用x作为工作表索引:
ActiveWorkbook.ActiveSheet.Copy Before:=ActiveWorkbook.Sheets(x)
使用工作表名称获取其索引:
ActiveWorkbook.ActiveSheet.Copy Before:=ActiveWorkbook.Sheets(Sheets("Sheet1").Index)
使用页数作为索引:
ActiveWorkbook.ActiveSheet.Copy Before:=ActiveWorkbook.Sheets(Sheets.Count)
如果要在复制后更改工作表的名称,则需要添加执行此操作的代码。
例:
ActiveWorkbook.ActiveSheet.Copy Before:=ActiveWorkbook.Sheets(Sheets.Count)
ActiveSheet.Name = x
我想要完成的是:
Sub Copier()
Dim a As Integer
Dim b As Integer
Dim c As String
c = InputBox("Name of Sheet")
a = InputBox("Enter begin number for making copy's")
b = InputBox("Enter end number for making copy's")
For x = a To b
'Loop to make x number copies.
ActiveWorkbook.ActiveSheet.Copy _
Before:=ActiveWorkbook.Sheets(c)
Next
End Sub
我现在唯一想要的就是复制的工作表的名称变为x。
此宏会将工作表“ 1”复制到工作表“ 2”至任何内容。
Option Explicit
Sub MakeExtraWeeks()
Dim q As Long
Dim i As Long
q = InputBox("How Many extra weeks?")
For i = 2 To q
Worksheets("1").Copy After:=Worksheets(Worksheets.Count)
Worksheets(Worksheets.Count).Name = CStr(i)
Next i
End Sub
我复制After:=
最后一张纸,所以我确切地知道在哪里可以找到它,所以我可以在下一行将其重命名(请记住,张纸数将增加1,因此.Name
将重命名最后一张纸)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.