0

問題:

あなたは私の最後の希望です。私はこの問題に 3 日間取り組んできましたが、うまくいきませんでした (そして、イライラするほどインターネット上の情報はほとんどありませんでした...)。

「マスター」ファイルのコピーを作成するマクロがあります (いくつかのモジュールといくつかのシートを新しいコピーにコピーします)。コピーされたシートの 1 つには、「マスター」ファイルのデータを参照するいくつかのピボットとスライサーが含まれています。

このマスター ファイルのコピーには、マスター ファイルのようにデータセット全体が含まれているわけではなく、これらのカットはさまざまなユーザーによって使用されるため、ピボットでマスター データセットを参照したくありません。したがって、私の課題は、各ピボットのソース データを変更し (できればすべて同じPivotCache)、該当するスライサーを必要なピボットに接続することでした。

スライサーをピボットから切断するコードは正常に機能し、スライサーを再接続するコードは正常に機能します。データ ソースを変更するための最初のピボットを取得できません。

イライラするのは、2 つの別々の機会にそれを機能させたのにRun-time error '13': Type mismatch、次にテストしたときにそれがスローされることです。

私が最初に考えたのは、ワークブック/シート名を十分に具体化していなかったので、正確なワークブックとシートを反映するようにコードを修正したことです。残念ながら、エラーはまだ存在します。参照されているワークブックとシートの両方が存在し、欠落している列ヘッダーはなく、名前のピボットがPivotTable1あり、範囲が正しく設定されています。

Withエラーは、ステートメントの 2 行目にスローされます。

私のコード(抜粋):

Dim pTable As PivotTable
Dim LEADData As Range
Dim sCache As SlicerCache
Dim pCache As PivotCache

thislastrow = Sheets("LEAD Data").Range("B" & Rows.Count).End(xlUp).Row
Set LEADData = Workbooks(cutwkbk2).Sheets("LEAD Data").Range("B9:AT" & thislastrow)
'Workbooks(cutwkbk2).Activate

With Workbooks(cutwkbk2).Sheets("Cabinet Reporting")
     'Debug.Print .PivotTables("PivotTable1").SourceData
     .PivotTables("PivotTable1").ChangePivotCache Workbooks(cutwkbk2).PivotCaches.Create(xlDatabase, LEADData)
End With

のようなピボット インデックスも使用してみました.PivotTables(1)が、それでもエラーがスローされます。私にとって不可解な部分は、2つの別々の機会でどのように機能したかですが、テスト間で何も変更されていないにもかかわらず失敗します...

提案を提供してください!私はこれで途方に暮れています!

4

1 に答える 1