2016-11-30 66 views
0

ダイナミックな名前付き範囲 "DATA"のピボットテーブルを作成するマクロを作成しています。 1004 'Method' Range 'of object'_Global'が失敗しました。特定のシートを参照していないため、他の投稿に表示されているものがありますか?実行時エラー '1004' VBAを使用してピボットテーブルを作成する

With ActiveWorkbook.Names("DATA") 
    .Name = "DATA" 
    .RefersToR1C1 = _ 
    "=OFFSET('Closed Cases'!R1C2,0,0,COUNTA('Closed Cases'!C6),25)" 
    .Comment = "" 
End With 
ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _ 
    Range("DATA"), Version:=xlPivotTableVersion14).CreatePivotTable TableDestination:= _ 
    "'External Analytics!'R1C15", TableName:="PivotTable3", DefaultVersion:= _ 
    xlPivotTableVersion14 
Sheets("External Analytics").Select 
Cells(1, 1).Select 
With ActiveSheet.PivotTables("PivotTable3").PivotFields("Resolver") 
    .Orientation = xlRowField 
    .Position = 1 
End With 
+1

このコードを実行するときに "DATA"が名前付き範囲として定義されていますか?そうでない場合は、最初の行にエラーが表示されますどの行でこのエラーが発生しますか? –

+0

最初のwith文は範囲に名前を付け、エラーを表示していません。私はここでエラーメッセージが表示されます。 'ActiveWorkbook.PivotCaches.Create(のSourceType:= xlDatabase、SourceData:= _ レンジ( "DATA")、バージョン:= xlPivotTableVersion14).CreatePivotTable TableDestination:= _ 「 '外部Analyticsを!' R1C15 "、TableName:=" PivotTable3 "、DefaultVersion:= _ xlPivotTableVersion14' –

+0

ActiveWorkbook.Names(" DATA ")。Name =" DATA "'?ハァッ? – Comintern

答えて

0

あなたのポストを形成すると仮定すると、名前付き範囲「DATA」は、コードは以下の範囲という名前の「DATA」のデータによるとPivotTableを作成し、正しく定義されている、との設定は、あなたのポストに望んでいた。

Option Explicit 

Sub DynamicCreatePivot() 

Dim wsSheet    As Worksheet 
Dim PvtTbl    As PivotTable 
Dim PTCache    As PivotCache 

' set Pivot destination sheet 
Set wsSheet = ThisWorkbook.Sheets("External Analytics") 

' set Pivot Cache to the data in "DATA" named range 
Set PTCache = ActiveWorkbook.PivotCaches.Add(xlDatabase, "DATA") 

' add this line in case the Pivot table doesn't exit >> first time running this Macro 
On Error Resume Next 
Set PvtTbl = wsSheet.PivotTables("PivotTable3") ' check if "PivotTable3" Pivot Table already created (in past runs of this Macro) 

On Error GoTo 0 
If PvtTbl Is Nothing Then ' if Pivot Table is not created 

    ' create a new Pivot Table in "External Analytics" sheet, start from Cell O1 (R1C15) 
    Set PvtTbl = wsSheet.PivotTables.Add(PivotCache:=PTCache, TableDestination:=wsSheet.Range("O1"), TableName:="PivotTable3") 

    'Create the headings and row and column orientation 
    With PvtTbl.PivotFields("Resolver") 
     .Orientation = xlRowField 
     .Position = 1 
    End With 
Else ' Pivot Table already created >> in precious code runs 
    ' just refresh the Pivot cache with the updated Range (named range "DATA") 
    PvtTbl.ChangePivotCache PTCache 
    PvtTbl.RefreshTable 
End If 

End Sub 
+0

PvtTbl.ChangePivotCache PTCacheは無効なプロシージャコールまたは引数を返します –

+0

@RyanHuletこのMACROを既に1回実行した後に発生しますか?このコードを初めて実行したときに 'ピボットテーブル'を作成できましたか? –

+0

コードを初めて実行したのはこれでした。エラーなしでコードを実行することができませんでした。 –

関連する問題