2016-07-25 9 views
0

エラーを返すマクロに問題があります。皆さんがこの問題を解消できるかどうかは疑問でした。シートまたはブックの名前に関係なく、別のシート/ブックに1つのマクロを適用します。

私が持っているマクロは次のようになります。

Sub pivot1_macro() 
' 
' pivot1_macro Macro 
' 
' Keyboard Shortcut: Ctrl+Shift+M 
' 
Sheets.Add 
ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _ 
    "7-14 week!R1C2:R199C35", Version:=xlPivotTableVersion15).CreatePivotTable _ 
    TableDestination:="Sheet5!R3C1", TableName:="PivotTable3", DefaultVersion _ 
    :=xlPivotTableVersion15 
Sheets("Sheet5").Select 
Cells(3, 1).Select 
With ActiveSheet.PivotTables("PivotTable3").PivotFields("PartMOD") 
    .Orientation = xlColumnField 
    .Position = 1 
End With 
With ActiveSheet.PivotTables("PivotTable3").PivotFields("EnteredShift") 
    .Orientation = xlRowField 
    .Position = 1 
End With 
With ActiveSheet.PivotTables("PivotTable3").PivotFields("Defect") 
    .Orientation = xlRowField 
    .Position = 1 
End With 
ActiveSheet.PivotTables("PivotTable3").AddDataField ActiveSheet.PivotTables(_ 
    "PivotTable3").PivotFields("Defect Quantity"), "Sum of Defect Quantity", xlSum 
Columns("D:D").EntireColumn.AutoFit 
Columns("A:A").EntireColumn.AutoFit 
Columns("B:B").EntireColumn.AutoFit 
Columns("C:C").EntireColumn.AutoFit 
Columns("D:D").EntireColumn.AutoFit 
Range("B3").Select 
Range("B3").Select 
End Sub 

私は、任意のアクティブなワークシートにこのマクロを適用したいのですが、私は、現在アクティブなワークシートに'SourceData'を設定するようにする方法 かなりわからないんだけど。

+0

シート名「7-14週!」を削除しますか? –

+1

クイックノートは、[.Activate'/'.Select']を避けるのが最善です(https://stackoverflow.com/questions/10714251/how-to-avoid-using-select-in-excel-vba-macros)予期しない結果が生じる可能性があるためです。 – BruceWayne

答えて

0

あなたは文字列を連結するには「&」を使用することができますので、あなたのために

SourceData := ActiveSheet.Name & "!R1C2:R199C35" 

作業は、現在のシートの名前を取得することではないでしょうか?

関連する問題