Bài viết: Tự động làm mới dữ liệu cho PivotTable

Liên hệ QC

kyo

Nguyễn Khắc Duy
Thành viên danh dự
Tham gia
4/6/06
Bài viết
901
Được thích
2,714
Tự động làm mới dữ liệu cho PivotTable


Làm mới (refresh) dữ liệu là một trong những nhu cầu cần thiết khi sử dụng PivotTable vì khi dữ liệu bạn thay đổi, chỉ khi bạn refresh, ngoài ra PivotTable sẽ không tự động cập nhật giúp bạn dữ liệu mới. Và nhiều khi, bạn ước là có một cách nào đó để PivotTable tự động refresh dữ liệu.

Tuy nhiên, không có một phép thuật nào xảy ra ở đây cả, vì PivotTable được thiết kế nguyên bản… không có chức năng tự động cập nhật dữ liệu mới.

Do vậy, để cập nhật dữ liệu mới, bạn phải luôn tự làm bằng tay bằng cách bấm chuột phải vào PivotTable -> chọn Refresh.

36472233030_84b7d1cfe6_o.png


Cách thứ hai bạn có thể dùng đến, mang một chút tự động, đó là sử dụng chức năng tự động refresh mỗi khi mở file của PivotTable. Cách này trông có vẻ tốt, nhưng chỉ đến khi bạn tắt file và mở lại. Còn nếu bạn không thực hiện hành động trên, PivotTable của bạn cũng sẽ "đứng im" với dữ liệu cũ.

Để thực hiện cách này, bạn có thể bấm chuột phải vào PivotTable -> PivotTable Options -> chọn thẻ Data -> chọn Refresh data when opening the file -> OK.

36472232880_e19f982414_b.jpg


Vì thực tế PiotTable không hỗ trợ, do đó, nếu bạn thật sự muốn PivotTable của bạn tự động refresh, bạn phải dùng VBA để can thiệp. Có rất nhiều cách để lập trình ra macro này, tùy theo tình huống bạn mong muốn. Tuy nhiên, với tình huống trong bài viết này, tôi sẽ chọn sự kiện Worksheet_Activate vì đa phần tất cả mọi người khi tạo PivotTable đều đặt PivotTable qua một sheet riêng, và do vậy, khi sử dụng sự kiện, dòng lệnh VBA của bạn sẽ tự kích hoạt mỗi khi bạn kích hoạt sheet này.

Mã:
Private Sub Worksheet_Activate()
   Dim pt As PivotTable
   For Each pt In Me.PivotTables
      pt.RefreshTable
   Next pt
End Sub

Chỉ cần bạn đặt dòng lệnh này vào đúng sheet chứa PivotTable, ngay lập tức mỗi khi kích hoạt, PivotTable của bạn sẽ tự động cập nhật toàn bộ. Chẳng hạn như tôi vừa thêm dòng Đà Nẵng vào dữ liệu, và ngay khi tôi bấm lại sheet PV04 của mình, lập tức PivotTable sẽ tự động cập nhật.

36472232740_8a3971c568_b.jpg


36472232580_06ab8fecdb_o.png


Chúc bạn thành công!

Một số bài viết có liên quan:
1/ Dùng hàm REPT tạo biểu đồ % ngay trong cell
2/ Filter một giá trị nhanh bằng phím nóng, dễ hơn tưởng tượng
3/ Những cách tính ra ngày đầu tháng
4/ Kết hợp Slicer và PivotChart, tại sao không?
5/ Gõ ký tự và Filter
6/ Một cách khác VLOOKUP từ phải sang trái đơn giản hơn
7/ 5 lỗi phổ biến khi dùng VLOOKUP và cách khắc phục
8/ Làm cách nào để xóa các dòng chẵn/lẻ?
9/ Ctrl + Enter và ứng dụng trong việc loại bỏ dòng trống
10/ Hãy cẩn thận với IFERROR
 
Lần chỉnh sửa cuối:
Upvote 0
code này được không ạ:
Private Sub Worksheet_Activate()
PivotTables(1).PivotCache.Refresh
End Sub
 
bác kyo cho em hỏi trong trường hợp em làm PivotChart, tong đó phần pivottable em đề ở sheet thứ 2 tên là Defined data, còn phần chart em để rải rác ở các sheet từ sheet 3 đến sheet 9 thì phải Code ntn?
 
Nội dùng bài viết rất hữu ích, tks.
 
Web KT
Back
Top Bottom