2016-04-05 6 views
0

非常に初心者のユーザーで、足を濡らすだけです。それが馬鹿げた質問であれば、これを言い訳してください - 私はまだ何をやっているのかよく分かります。VBA内の別のシートからピボットテーブルにアクセスする

私はVBAとExcelでユーザーフォームを作成しています。私はピボットテーブルから情報を引き出す方法を学ぶことに成功してきましたが、私は邪魔になりました。

別のシートから自分のユーザーフォームを実行すると、ピボットテーブルが見つかりません。ここで私が使用しているコードです。

Set PT = ActiveSheet.PivotTables(1)

私はそのシート1だとき完璧に動作しますが、私は異なるシート上に複数のピボットを持っているとの情報と相互参照データを呼び出すことになるでしょうシナリオを想定しています。

私はおそらくSet PT = ActiveWorkbook.PivotTables(1)がうまくいくと思っていましたが、もちろんそうではありません。明らかに、ピボットテーブル変数の使用方法はまだ分かりません。

誰も私がこれをやり遂げる方法を知っていますか?本当にありがとう。

+0

異なるシートに複数のピボットがある場合、使用するコードはどのように決定されますか? –

答えて

0

ユーザーフォームを開くと、ユーザーフォームが開いているブックがアクティブになります。正しく理解すれば、別のシートのピボットテーブルコレクションの1番目のオブジェクトを参照したいと考えています。これを行うには、ピボットテーブルを使用してファイルのパスを定義するには、以下の例は:

Dim path as string 
Dim wbk as workbook 
Dim PT As PivotTable 

path= "C:\folder1\folder2\yourfile.extension" 

set wbk = workbooks.open(path) 
Set PT = wbk.worksheets("Sheet1").PivotTables(1) 
'do your actions, save the file if you want to keep changes 
wbk.close 
set wbk = nothing 

はまた代わりに、ワークシート内のすべてのピボットテーブルで作業:

Set PT = wbk.worksheets("Sheet1").PivotTables(1) 

あなたは、コレクションをループを使用することができます

For Each PT In wbk.worksheets("Sheet1").PivotTables 
     PT.RefreshTable 
Next PT 
+0

ご協力いただきありがとうございます! –

関連する問題