2016-03-29 33 views
0

Excel'de bir VBA komut dosyasında bir pivot tablo oluşturmaya çalışıyorum.Bir vba pivot tablo oluşturmaya çalışıyorum ve farklı sütunları kullanarak bir mistype eşleştirmeye çalışıyorum

Kod çalışır ve bir pivot tablo oluşturabilir, ancak yalnızca belirli bir sütuna kadar çalışan garip. Eğer A'dan J'ye kadar herhangi bir sütun yaparsam, iyi çalışır, sadece onu kullanmayı denediğimde ve aralığı K sütununa aldığımda, işe yaramıyor ve yanlış eşleşme hatası alıyorum.

belgeleri Okuma: https://msdn.microsoft.com/en-us/library/office/ff839430.aspx enter link description here

gördüm:

beklenmedik "tür uyumsuzluğu" hatalara neden olabilecek bir Menzil nesneyi geçirilmesi.

Kullanmak istediğim hücre aralığını iletmenin başka bir yolu var mı?

Dim pvtCache As PivotCache 
Dim pvt As PivotTable 

On Error GoTo errTrap 
    Set pvtCache = ThisWorkbook.PivotCaches.Create(xlDatabase, ThisWorkbook.Sheets("Issues").Range("D1:J20")) 
'this one doesnt work 
    'Set pvtCache = ThisWorkbook.PivotCaches.Create(xlDatabase, ThisWorkbook.Sheets("Issues").Range("D1:K20")) 

errTrap: 
    Debug.Print err.description 

Set pvt = pvtCache.CreatePivotTable(TableDestination:=charts_sheet.Range("B2")) 

K sütun diğer sütunların geri kalanıyla aynı dizeleri, teşekkürler çocuklar vardır.

cevap

0

iyi i

Dim pvtCache As PivotCache 
    Set pvtCache = ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:="Issues!$C$1:$M$" & used_cells_count_string) 

    Dim my_pivot As PivotTable 
    Set my_pivot = ThisWorkbook.Sheets("Charts").PivotTables("initial_pivot") 
    my_pivot.ChangePivotCache pvtCache 
    my_pivot.RefreshTable 

hala bir daha bir dizi geçiş yapmaya çalışan bir fark var inandın bunu yenilemek için

ve PivotTableWizard

kullanarak bu

Dim range_string As String 
    range_string = "C1:N" + used_cells_count_string 
    Dim the_range As Range 
    Set the_range = ThisWorkbook.Sheets("Issues").Range(range_string).CurrentRegion 

    Dim objTable As PivotTable 
    Set objTable = ActiveSheet.PivotTableWizard(SourceType:=xlDatabase, SourceData:=the_range, tabledestination:=charts_sheet.Range("B2"), TableName:="initial_pivot", HasAutoFormat:=True) 

gibi sabit string böyle bir sheetName! $ C $ 1: $ M $ 10

İlgili konular