如何添加多个工作表并使用单元格引用命名它们?

问题描述 投票:0回答:1

我正在我的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开始编号。应根据此编号命名每个新工作表。

excel vba add
1个回答
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
© www.soinside.com 2019 - 2024. All rights reserved.