| Jak dodać do tabeli pole obliczeniowe za pomocą VBA? |
|
Problem: W jaki sposób za pomocą VBA można dodać do tabeli przestawnej pole obliczeniowe? Rozwiązanie: Możesz skorzystać z poniższego makra, które tworzy dwa pola obliczeniowe: są to odchylenia (kwotowe i procentowe) między sprzedażą, a kosztami w poszczegolnych miastach (zdjęcie ilustruje fragment tabeli). ![]() '--------------------------------------------------------------------------------------- ' Procedure : CalculatedField ' Author : Mariusz Jankowski ' Purpose : Makro tworzy dwa pole obliczeniowe w tabeli przestawnej '--------------------------------------------------------------------------------------- ' Sub CalculatedField() Dim Ws As Worksheet Dim PT As PivotTable Dim PC As PivotCache Dim PF As PivotField Dim Table As Range Application.ScreenUpdating = False Set Ws = ActiveSheet Set Table = Ws.Range("A1").CurrentRegion For Each PT In Ws.PivotTables PT.TableRange2.Clear Next PT Set PC = Ws.Parent.PivotCaches.Create(xlDatabase, Table) Set PT = PC.CreatePivotTable(Ws.Range("E2"), "SalesExpenses") With PT .AddFields RowFields:="Miasto" Set PF = .CalculatedFields.Add("Odchylenie [zł]", "='Sprzedaż' - 'Koszty'") With PF .Orientation = xlDataField .Function = xlSum .Caption = "Odchylenie [zł.]" .NumberFormat = "# ##0 zł" End With Set PF = .CalculatedFields.Add("Odchylenie [%]", "=('Sprzedaż' / 'Koszty')-1") With PF .Orientation = xlDataField .Function = xlSum .Caption = "Odchylenie [%] " .NumberFormat = "0.00%" End With .PivotFields("Miasto").AutoSort xlDescending, "Odchylenie [%] " End With Application.ScreenUpdating = True End Sub |
|
| Zmieniony ( Wtorek, 22. Wrzesień 2009 21:35 ) |
