2016-08-23 95 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

相關問題