我正在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 工作表。在以下位置添加:= Sheet23
所需的输出(基本):我想在工作簿中的工作表23之后添加一个新工作表
所需的输出(理想):我想根据我在列表中拥有的条目数在工作表23之后添加许多工作表。列表中的每个项目均从1开始编号。每个新工作表都应根据该数字命名。
答案 0 :(得分:0)
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