【发布时间】:2019-04-01 10:30:58
【问题描述】:
我正在我的 PERSONAL.xlsb 工作簿中创建一个宏,以便可以在我的所有工作簿中使用它。
宏从工作簿 1 中获取信息,将其复制到工作簿 2 中,然后从工作簿 2 中获取新信息并将其放入我在工作簿 1 中创建的新工作表中。
我被困在要向工作簿中添加多张工作表的部分。
我认为这很简单,但我尝试了多种方法将工作表添加到我的工作簿,但我一直收到错误消息。我试图创建一个只添加工作表的简单宏,但我一直收到这一行代码的错误。
我需要做什么才能将工作表添加到我的工作簿?
' 尝试 1:不起作用 - 运行时错误 1004 ActiveWorkbook.Sheets.Add 之后:="Sheet23"
' 尝试 2:不起作用 - 运行时错误 1004 Sheets.Add After:="Sheet23"
'尝试 3:不起作用 - 运行时错误 1004 Sheets.Add After:=Sheet23
'尝试 4:不起作用 - 运行时错误 1004 Worksheets.Add after:=Sheet23
所需的输出(基本):我想在我的工作簿中的第 23 页之后添加一个新工作表
期望的输出(理想):我想根据我列表中的条目数在第 23 页之后添加一些工作表。列表中的每个项目从 1 开始编号。每个新工作表都应根据此编号命名。
【问题讨论】:
-
它正在寻找工作表索引或对象本身。试试
ActiveWorkbook.Sheets.Add After:=ActiveWorkbook.Worksheets("Sheet23") -
嗨,克里斯,请更新您的问题以生成 minimal, complete and verifiable example,以便我们更好地帮助诊断问题! (它可能是由引发错误的地方以外的其他原因引起的)。您在 excel 中可以拥有的工作表数量也有限制(按内存),这可能会导致您的问题...see here。您是否尝试过手动添加床单或仅添加 23 岁之后的床单?
-
如果您需要将它们添加到工作簿的末尾,假设
wb是工作簿的引用:wb.Sheets.add after.=wb.sheets(wb.sheets.count)此代码将始终将工作表添加到工作簿的末尾。