2016-08-23 99 views
0

我有以下代码:宏没有看到其他工作簿的工作表?

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 

当涉及到表(“股份”)选择,它给标超出范围错误。它在模块上工作时不会给出任何错误,但是我创建了一个启用宏的工作簿并插入了使用此宏指定的按钮。

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

回答

0

您正在运行宏的工作簿中的工作表是否为“库存”?

如果不是你需要告诉Excel的该工作簿是在

例如:

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

虽然不建议您使用激活或选择,因为这可能会导致意想不到的运行时间错误。请参阅以下内容:How to avoid using Select in Excel VBA macros

+0

我已经激活它之前做了一些操作,在我给它的代码中工作,直到表(“股票”)选择。 现在,它运行时,我从我运行宏的工作簿中创建的模块运行宏。但是,当我将Excel发送给其他人时,它还包含模块和代码,但是当尝试从按钮运行时,它会给出错误“无法运行宏.......”。 – hakandeep

+0

查看此帮助主题以查看如果这解决了问题,因为它听起来像他们没有通过选择启用内容启用宏。 [https://support.microsoft.com/en-us/kb/930076] –

+0

我启用了,这不是问题,但感谢您的帮助 – hakandeep

相关问题