如何使用数组中的数据处理工作表
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
我面临以下问题:
我编写了代码来读取一系列数据,将数据存储在一个数组中,然后使用数组中的名称插入工作表。运行正常,代码如下:
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