Chào mọi người,
Dạo này mình có làm việc nhiều với dữ liệu và nhận thấy việc cập nhật biểu đồ thủ công khá tốn thời gian, đặc biệt khi dữ liệu thay đổi liên tục. Mình đã mày mò và tìm ra cách tự động hóa việc này bằng VBA. Chia sẻ với anh em diễn đàn để cùng tham khảo nhé!
Vấn đề: Khi dữ liệu nguồn thay đổi (thêm/bớt dòng, thay đổi phạm vi), biểu đồ Excel sẽ không tự cập nhật, phải làm thủ công. Điều này rất bất tiện khi cần báo cáo nhanh.
Giải pháp: Sử dụng một đoạn mã VBA nhỏ để tự động điều chỉnh phạm vi dữ liệu của biểu đồ mỗi khi có thay đổi.
Code minh họa:
Sub UpdateChartData()
Dim ws As Worksheet
Dim ch As ChartObject
Dim cht As Chart
Dim dataRange As Range
Set ws = ThisWorkbook.Sheets("Sheet1") ' Thay "Sheet1" bằng tên sheet chứa dữ liệu của bạn
Set ch = ws.ChartObjects("Chart 1") ' Thay "Chart 1" bằng tên đối tượng biểu đồ của bạn (có thể xem trong cửa sổ Name Box)
Set cht = ch.Chart
' Xác định phạm vi dữ liệu mới (ví dụ: từ A1 đến B đến dòng cuối cùng của cột B)
Set dataRange = ws.Range("A1:B" & ws.Cells(ws.Rows.Count, "B").End(xlUp).Row)
' Cập nhật phạm vi dữ liệu cho biểu đồ
cht.SetSourceData Source:=dataRange
MsgBox "Phạm vi dữ liệu biểu đồ đã được cập nhật!"
End Sub
Cách sử dụng:
- Mở cửa sổ VBA (Alt + F11).
- Insert một Module mới.
- Copy đoạn code trên vào.
- Thay tên sheet và tên đối tượng biểu đồ cho phù hợp.
- Chạy Sub
UpdateChartDatahoặc gán nó vào một nút bấm trên sheet để tiện sử dụng.
Anh em nào có cách làm hay hơn hoặc gặp khó khăn gì thì cùng thảo luận nhé!