【问题标题】:How do i add multiple worksheets and name them with cell references?如何添加多个工作表并使用单元格引用命名它们?
【发布时间】: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) 此代码将始终将工作表添加到工作簿的末尾。

标签: excel vba add


【解决方案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

【讨论】:

  • 感谢您的建议。第一个给了我一个 Run-Time 9 错误。
  • 是否存在问题,因为我将宏添加到我的 PERSONAL.xlsb?是否有一些更基本的东西我没有做过,因为它看起来很奇怪,以至于 VBA 中最基本的代码行之一不起作用
  • 我们假设 activeworkbook 中有一张 sheet23 。在绝大多数情况下不会有,所以我不确定你为什么希望它普遍可用。也就是说,当您收到错误时, i 的值是多少?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-23
  • 1970-01-01
相关资源
最近更新 更多