• Tự động làm mới dữ liệu cho PivotTable

      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.




      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.




      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.

      Code:
      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.





      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
      Góp ý 1 Góp ý
      1. Thay's Avatar
        Thay -
        code này được không ạ:
        Private Sub Worksheet_Activate()
        PivotTables(1).PivotCache.Refresh
        End Sub