Tôi đang cố gắng tạo một biểu đồ, bằng tay hoặc bằng VBA, sẽ tự động cập nhật khi các trang tính mới được thêm vào. Dữ liệu được nhập từ bảng bên ngoài hàng tháng và mỗi lần được thêm vào một bảng mới. Cấu trúc dữ liệu giống nhau mọi lúc.
Tôi biết cách sử dụng biểu đồ động nếu tôi muốn cập nhật cho các hàng và cột mới, nhưng điều này thì khác.
Tôi đã thử sử dụng trình ghi macro cùng với Trình hướng dẫn PivotChart và sau đó sửa đổi nó bằng một vòng lặp for, như thế này:
For i = 1 To Sheets.Count
ActiveWorkbook.PivotCaches.Create(SourceType:=xlConsolidation, SourceData:= _
Array("Sheet" & i & "!R1C1:R10C7", "Item1"), _
Version:=6).CreatePivotTable TableDestination:="", TableName:= _
"PivotTable1", DefaultVersion:=6
More Code
Next i
Phần còn lại của mã thiết lập Tổng giá trị, v.v.
Tôi thấy rằng có một phương thức PivotCaches.Item, nhưng tôi không thấy gì về việc cập nhật PivotChart hiện có.
Đây không phải là một PivotChart, nếu một biểu đồ thông thường sẽ hoạt động. Tương tự, nếu có cách làm mà không cần VBA, điều đó cũng tốt.
EDIT: Tôi nghĩ rằng tôi đã giải quyết nó. Bất kỳ phê bình đều được chào đón.
For i = 1 To Sheets.Count
If IsEmpty(pivotArray) Then
pivotArray = Array(1)
ReDim Preserve pivotArray(1 To UBound(pivotArray) + 1) As Variant
pivotArray(1) = Array("Sheet" & i & "!R1C1:R4C3", "Item1")
Else
ReDim Preserve pivotArray(1 To UBound(pivotArray) + 1) As Variant
pivotArray(UBound(pivotArray)) = Array("Sheet" & i & "!R1C1:R4C3", "Item1")
End If
Next i