Dùng VBA trong Excel để tạo và sửa chữa PivotTable - - Pdf 43

Dùng VBA trong Excel để tạo và sửa chữa PivotTable -
Chức năng PivotTable là chức năng mạnh của Excel, nó giúp bạn tổng kết số liệu
nhanh một cách kinh ngạc. Chức năng này đầu tiên xuất hiện trong Excel 5.
Tôi cho rằng các bạn đã làm quen với việc tạo và sửa chữa PivotTable bằng cách thủ công
và bài viết này sẽ hướng dẫn dùng VBA để tạo và sửa chữa PivotTable một cách linh động.
Bài viết sử dụng cho Excel 2000.
Giả sử ở sheet1, tôi có khối dữ liệu cần phân tích như Hình1. Khối dữ liệu này gồm các
trường: SalesRep (đại diện bán hàng), Region (Vùng), Month (Tháng), Sales (doanh số
bán).

Trước khi tạo bảng PivotTable như Hình 2, tôi đã chọn Record New Macro... như Hình 3,
để xem đoạn mã được ghi lại như thế nào.
Sau đó tôi vào màn hình VBE bằng
cách nhấn tổ hợp phím Alt + F11. Tôi
vào Module1, thấy được đoạn mã như
sau:
Sub Macro1()
Macro1 Macro
Macro recorded 17/03/2003 by
Duyet
Range("A1:D13").Select
ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
"Sheet1!R1C1:R13C4").CreatePivotTable TableDestination:=Range("A1"), _
TableName:="PivotTable1"
ActiveSheet.PivotTables("PivotTable1").SmallGrid = False

Hình 3
ActiveSheet.PivotTables("PivotTable1").AddFields RowFields:="SalesRep",
_
ColumnFields:="Month", PageFields:="Region"
ActiveSheet.PivotTables("PivotTable1").PivotFields("Sales").Orientation


Ghi chú:Region

Là trường page trong
PivotTable.SalesRep

Là trường row trong
PivotTable.Month

Là trường column trong
PivotTable.Sales

Là trường data trong
PivotTable sử dụng hàm
Sum

Sub CreatePivotTable()
Dim PTCache As PivotCache

Macro1 khi sử dụng phương thức Add để tạo PivotCache thì
SourceData là "Sheet1!R1C1:R13C4" còn trong đoạn mã tôi viết
là Sheets("Sheet1").Range("A1").CurrentRegion.Address. Ở đây
tôi dùng thuộc tính Current Region, có nghĩa là dữ liệu chúng ta sử
dụng dựa trên vùng hiện tại xung quanh ô A1. Điều này để chắc
chắn thủ tục CreatePivotTable vẫn tiếp tục làm việc tốt khi chúng
ta thêm vào dữ liệu.
Bây giờ giả sử tôi có thêm trường Target (chỉ tiêu) trong khối dữ liệu, và trong PivotTable
tôi sẽ đưa thêm trường target vào đồng thời cũng thêm trường tính toán Variance. Trường
này (Variance) sẽ bằng Sales - Target. Khối dữ liệu mới của tôi như hình 6.
Đoạn mã trong thủ tục CreatePivotTable trên sẽ được thêm như sau (tôi chỉ thêm trong
đoạn With PT ....End With):
With PT
Them cac truong
.PivotFields("Region").Orientation = xlPageField
.PivotFields("Month").Orientation = xlColumnField
.PivotFields("SalesRep").Orientation = xlRowField
.PivotFields("Sales").Orientation = xlDataField


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status