2017-10-17 94 views
0

我遇到了一个似乎很直接的问题,但无论出于何种原因,在我的代码中给了我一个错误消息。我正在使用宏来创建数据透视表,并且想要重命名为数据透视表创建的工作表。我唯一的问题是活动工作表不会重命名并显示错误消息“运行时9:下标超出范围”。代码如下,并在最后一行出现错误:VBA:重命名活动工作表

Sub Macro24() 

Dim VendorData As String 
Dim Lastrow As Long 
Dim PivotSheet As String 

Sheets("Statement").Select 
Lastrow = Cells(Rows.Count, "A").End(xlUp).Row 

Sheets("Statement").Select 
ActiveWorkbook.Names.Add Name:="VendorData", RefersTo:= _ 
    "=Statement!$A$4:$C$" & Lastrow 

Sheets.Add 
PivotSheet = ActiveSheet.Name 
+0

哪条线生产运行时间9错误?此错误表示您在代码中引用的对象在工作簿中不可用。您是否在线表格(“声明”)中出现该错误?请选择?如果是这样,请确保名为Statement的工作表可用。否则,您显示的代码的最后两行不应该产生该错误。 – sktneer

+0

最后一行PivotSheet = ActiveSheet.Name是我得到错误的地方。它根本不会将活动工作表重命名为PivotSheet – oryan5000

+0

将活动工作表名称获取到变量PivotSheet中又有什么意义?你打算在代码中使用它吗?如果您只是想在添加后重命名工作表,请使用ActiveSheet.Name =“Pivot Sheet” – sktneer

回答

3

使用工作表变量:

Dim ws As Worksheet 
Set ws = Worksheets.Add 
ws.name = "PivotSheet" 
pivotsheet = ws.Name 
+0

感谢您的回复!然而,在做出更改 – oryan5000

+0

之后,我仍然在同一行上得到了同样的错误信息,即将新工作表(它将类似于Sheet3)分配给数据透视表。是否有其他代码丢失,可能是问题?它错误在哪里?您不重命名活动工作表。 – QHarr

+0

在我上面的代码的最后一行出错了,因为表格没有被重命名。所有上面的代码都包含在内。我如何使用变量实际重命名工作表? – oryan5000