我正在我的PERSONAL.xlsb工作簿中创建一个宏,以便它可以在我的所有工作簿中使用。
宏从工作簿1中获取信息,将其复制到工作簿2中,然后从工作簿2中获取新信息并将其放入我在工作簿1中创建的新工作表中。
我被困在我想要在工作簿中添加多个工作表的部分。
我认为这很简单,但我尝试了多种方法将工作表添加到工作簿中,但我一直收到错误。我试图创建一个只添加工作表的简单宏,但我一直收到这一行代码的错误。
为了将工作表添加到我的工作簿,我需要做什么?
'尝试1:不起作用 - 运行时错误1004 ActiveWorkbook.Sheets.Add After:=“Sheet23”
'尝试2:不起作用 - 运行时错误1004 Sheets.Add After:=“Sheet23”
'尝试3:不起作用 - 运行时错误1004 Sheets.Add After:= Sheet23
'尝试4:不起作用 - 运行时错误1004 Worksheets.Add:= Sheet23
期望的输出(基本):我想在工作簿中的表23之后添加一个新的工作表
期望的输出(理想):我想根据列表中的条目数在表23之后添加一些工作表。列表中的每个项目从1开始编号。应根据此编号命名每个新工作表。
after参数希望工作表对象不是字符串,因此您需要
ActiveWorkbook.Worksheets.add after:=ActiveWorkbook.Worksheets("Sheet23")
但你也可以使用索引号
Dim i as integer
i = ActiveWorkbook.Worksheets("Sheet23").Index
ActiveWorkbook.Worksheets.Add after:= ActiveWorkbook.Worksheets(i)
如果我们假设你的列表(为了争论)sheet1.range(“a1”)向下然后我们可以写
Sub MakeSheetsFromList()
Dim r As Range
Set r = Worksheets("sheet1").Range("a1")
Dim i As Integer
i = Worksheets("sheet23").Index
Dim ws As Worksheet
Do
Set ws = Worksheets.Add(after:=Worksheets(i))
ws.Name = r.Text
Set r = r.Offset(1, 0)
i = i + 1
Loop Until r = ""
End Sub