如何使用数组中的数据处理工作表

How to address a worksheet with Data from Array

我面临以下问题:

我编写了代码来读取一系列数据,将数据存储在一个数组中,然后使用数组中的名称插入工作表。运行正常,代码如下:

For intZaehler = 0 To UBound(arrGliederungsebenen) - 1
ActiveWorkbook.Worksheets.Add(before:=ActiveWorkbook.Worksheets("7_Steuern")).Name = arrGliederungsebenen(intZaehler)

arrGliederungsebenen 已存储数据,我希望新工作表以此命名。我一直保持简单命名:

arrGliederungsebenen(0) = 1 
arrGliederungsebenen(1) = 1.2 
arrGliederungsebenen(2) = 1.3 
arrGliederungsebenen(3) = 2.1 and so forth

接下来,我想将之前复制的模板粘贴到新插入的表格中。我现在面临的问题是如何正确处理新添加的工作表:
很遗憾 Activesheet.paste Destination:=Worksheets(arrGliederungsebenen(intZaehler).Name).Range("A1:0354").Offset(, 24) 不起作用。

谁能告诉我,如何使用数组中的数据正确定位工作表的名称?

.Name 有什么用?我觉得不对。

Destination:=Worksheets(arrGliederungsebenen(intZaehler).姓名).Range("A1:0354").Offset(, 24)

--->

Destination:=Worksheets(arrGliederungsebenen(intZaehler)).Range("A1:0354").Offset(, 24)

我更喜欢将 Worksheet 对象设置为我正在添加的当前 sheet(在我的代码 Dim Sht As Worksheet 中),它使代码更短、更清晰、更容易调试。

仅针对此示例,我使用 Sheets("7_Steuern").Range("C7:E9") 复制和粘贴每个 sheet。

代码(已测试)

Option Explicit

Sub MultipleCreateSheets()

Dim intZaehler As Integer
Dim Sht As Worksheet
Dim arrGliederungsebenen(3) As String

arrGliederungsebenen(0) = 1
arrGliederungsebenen(1) = 1.2
arrGliederungsebenen(2) = 1.3
arrGliederungsebenen(3) = 2.1

For intZaehler = 0 To UBound(arrGliederungsebenen) - 1
    Set Sht = ActiveWorkbook.Worksheets.Add(before:=ActiveWorkbook.Worksheets("7_Steuern"))
    Sht.Name = arrGliederungsebenen(intZaehler)

    Sheets("7_Steuern").Range("C7:E9").Copy Destination:=Sht.Range("A1:O354").Offset(, 24)        
Next intZaehler

End Sub