2016-04-05 19 views
0

Burada çok acemi kullanıcı, sadece ayaklarımın ıslanmasını sağla. Lütfen aptalca bir soru varsa bunu affedin - Ne yaptığımdan kesinlikle eminim.Başka bir sayfadan Pivot tablolarına VBA'ya erişme

VBA ve Excel ile bir kullanıcı formu oluşturuyorum. Şu ana kadar bir pivot tablodan bilgi çekmeyi öğrenmede başarılı oldum, ama bir aksamaya girdim.

Kullanıcı formumu başka bir sayfadan çalıştırdığımda, pivot tablosunu bulamıyor. İşte kullanıyorum kod.

Set PT = ActiveSheet.PivotTables(1)

İşleri mükemmel Bir o sac değilim, ama ben farklı bir yaprağına birden fazla döner var ve info ve çapraz referans veri aramak istediğiniz bir senaryo öngörülüyor zaman.

Belki de Set PT = ActiveWorkbook.PivotTables(1)'un işe yarayacağını düşündüm, ama tabi ki değil. Açıkçası, bir pivot tablo değişkeninin nasıl kullanıldığını henüz anlamıyorum.

Bunu yapmak için nasıl gidebileceğimi bilen var mı? Çok teşekkürler.

+0

farklı bir yaprağına birden fazla pivotlar sonra nasıl kod tek kullanılması gerektiğini belirleyecek varsa: Bu örnek tablolar yeniler? –

cevap

0

UserForm'u açarsanız, UserForm açık olan çalışma kitabı etkin olanı olacaktır. Doğru bir şekilde anlarsam, farklı bir sayfadaki PivotTable koleksiyonunun 1. nesnesine başvurmak istersiniz. Bunu yapmak, pivot tablo ile dosyanın yolunu tanımlamak için aşağıdaki örnek:

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 

Alternatif yerine, çalışma sayfanızdaki tüm Pivot Tablolar üzerinde çalışmak:

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

Sen toplama yoluyla bir döngü kullanabilirsiniz

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

Yardımlarınız için çok teşekkürler! –

İlgili konular