宏没有看到其他工作簿的表格?

时间:2016-08-23 12:10:50

标签: excel vba

我有以下代码:

Dim StartCell3 As Range
Dim DataRange3 As Range


Set StartCell3 = Range("A1")
Set DataRange3 = StartCell3.CurrentRegion

DataRange3.Select

    ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:=DataRange3, Version:=xlPivotTableVersion15).CreatePivotTable _
        TableDestination:="Stocks!R1C6", TableName:="PivotTable8", DefaultVersion _
        :=xlPivotTableVersion15
    Sheets("Stocks").Select
    Cells(1, 6).Select
    With ActiveSheet.PivotTables("PivotTable8").PivotFields("Material")
        .Orientation = xlRowField
        .Position = 1
    End With
    ActiveSheet.PivotTables("PivotTable8").AddDataField ActiveSheet.PivotTables( _
        "PivotTable8").PivotFields("Unrestricted"), "Sum of Unrestricted", xlSum
    Range("F6").Select
    With ActiveSheet.PivotTables("PivotTable8")
        .ColumnGrand = False
        .RowGrand = False
    End With

说到Sheets(“Stocks”)。选择,它会给出下标超出范围的错误。它在处理模块时不会出现任何错误,但我创建了一个启用宏的工作簿并插入了一个分配了该宏的按钮。

主要问题是,从我创建的宏中,正常工作代码在此工作簿代码部分。因此,它只有sheet1,没有sheet2或其他一些工作表名称。为什么会出错?为什么工作簿无法识别其他工作簿?

1 个答案:

答案 0 :(得分:0)

是否有表格" Stocks"在工作簿中,您正在运行宏?

如果没有,你需要告诉excel它在哪个工作簿。

例如:

Workbooks("name of workbook where the sheet is").Activate
Sheets("Stocks").Select

虽然不建议您使用activate或select,因为这会导致意外的运行时错误。请参阅以下内容:How to avoid using Select in Excel VBA macros