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.
Hình 3
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:
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
Khảo sát đoạn mã đã được ghi:
Để khảo sát đoạn mã trên bạn cần phải biết một số đối tượng liên quan. Tất cả các đối tượng này đều được giải thích trên online help.
PivotCaches:là tập hợp các đối tượng PivotCache trong đối tượng Workbook
PivotTables: là tập hợp các đối tượng PivotTable trong đối tượng Workbook
PivotTableFields: là tập hợp các trường trong đối tượng PivotTable
Create PivotTable: một phương thức của đối tượng PivotCache để tạo một PivotTable sử dụng dữ liệu trong một PivotCache
Ta có thể viết lại thủ tục trên bằng thủ tục CreatePivotTable (chú ý bạn nhập thủ tục này vào module1) sau đây, có thể nó hơi dài nhưng sẽ dễ hiểu hơn, và bạn có thể chạy chương trình bất cứ đâu bằng cách nhấn tổ hợp phím Alt + F8, sau đó chọn thủ tục CreatePivotTable và chọn Run như hình 4.
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.
Hình 3
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:
Mã:
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
ActiveSheet.PivotTables("PivotTable1").AddFields RowFields:="SalesRep", _
ColumnFields:="Month", PageFields:="Region"
ActiveSheet.PivotTables("PivotTable1").PivotFields("Sales").Orientation = _
xlDataField
End Sub
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
Khảo sát đoạn mã đã được ghi:
Để khảo sát đoạn mã trên bạn cần phải biết một số đối tượng liên quan. Tất cả các đối tượng này đều được giải thích trên online help.
PivotCaches:là tập hợp các đối tượng PivotCache trong đối tượng Workbook
PivotTables: là tập hợp các đối tượng PivotTable trong đối tượng Workbook
PivotTableFields: là tập hợp các trường trong đối tượng PivotTable
Create PivotTable: một phương thức của đối tượng PivotCache để tạo một PivotTable sử dụng dữ liệu trong một PivotCache
Ta có thể viết lại thủ tục trên bằng thủ tục CreatePivotTable (chú ý bạn nhập thủ tục này vào module1) sau đây, có thể nó hơi dài nhưng sẽ dễ hiểu hơn, và bạn có thể chạy chương trình bất cứ đâu bằng cách nhấn tổ hợp phím Alt + F8, sau đó chọn thủ tục CreatePivotTable và chọn Run như hình 4.