2012-11-06 15 views
5

Próbuję dowiedzieć się, jak zaktualizować dane źródłowe tabeli przestawnej na końcu wiersza, gdy dane zmieniają się przy użyciu języka VBA. Mój obecny kod jest poniżej:VBA Aktualizowanie danych źródłowych dla tabeli przestawnej na koniec wiersza

Dim shBrandPivot As Worksheet 
Dim shCurrentWeek As Worksheet 
Dim shPriorWeek As Worksheet 
Dim shPivot As Worksheet 
Dim lr As Long 


Set shBrandPivot = ActiveWorkbook.Sheets("Brand Pivot") 
Set shCurrentWeek = ActiveWorkbook.Sheets("Current Week") 
Set shPriorWeek = ActiveWorkbook.Sheets("Prior Week") 
Set shPivot = ActiveWorkbook.Sheets("Pivot") 
lr = shCurrentWeek.Range("A" & Rows.Count).End(xlUp).Row 

With ActiveWorkbook.Sheets("Pivot").Activate 

ActiveSheet.PivotTableWizard SourceType:=xlDatabase, SourceData:="CurrentWeek!A3:X & lr" 

End With 

Błąd Dostaję prowadzony jest błąd czasu 1004: Nie można otworzyć pliku źródłowego tabeli przestawnej: E: \ nieaktywny \ KXM2103 \ Data \ CurrentWeek

+0

Czy możliwe jest użycie dynamicznie zdefiniowanego zakresu, a następnie odświeżenie tabeli przestawnej w kodzie? w jaki sposób twoje dane są aktualizowane? – scott

+0

@ scott na razie moje dane są aktualizowane ręcznie, przechodząc do Opcje -> Zmień dane źródłowe. Zastanawiam się nad próbą podejścia, które omówiłeś, ale chciałem sprawdzić, czy istnieje sposób, aby zrobić to wyłącznie za pomocą VBA. – kmiao91

Odpowiedz

5

Aby to zrobić wyłącznie w VBA możesz spróbować tego.

Dim shBrandPivot As Worksheet 
Dim shCurrentWeek As Worksheet 
Dim shPriorWeek As Worksheet 
Dim shPivot As Worksheet 
Dim lr As Long 
dim rng as range 

Set shBrandPivot = ActiveWorkbook.Sheets("Brand Pivot") 
Set shCurrentWeek = ActiveWorkbook.Sheets("Current Week") 
Set shPriorWeek = ActiveWorkbook.Sheets("Prior Week") 
Set shPivot = ActiveWorkbook.Sheets("Pivot") 
lr = shCurrentWeek.Range("A" & Rows.Count).End(xlUp).Row 
set rng = shcurrentweek.range("A3:X" & lr) 

With shPivot.PivotTables(1).PivotCache 
     .SourceData = rng.Address(True, True, xlR1C1, True) 
     .Refresh 
End With 
+0

Otrzymuję błąd kompilacji na XlPivotTableVersion14 (zmienna nie zdefiniowana) – kmiao91

+0

edytowałem, aby usunąć wersję i pozostawić domyślną – scott

+0

Otrzymuję teraz błąd "wymagany obiekt" do kodu – kmiao91

Powiązane problemy