[英]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.