修改所有图表

Rob*_*lay 1 excel charts vba

我有一本包含多个工作表的工作簿,每个工作表都有多个图表。

这些都记录了各种功能的进度,所以X轴是日期。

显然,该轴的终点应该是今天的日期 - 好的,为了视觉效果,假设今天是一周。所以每天都需要更换。

Excel 生成了这个宏,在一张图表上运行得很好。

    ActiveSheet.ChartObjects("Overall").Activate
    ActiveChart.Axes(xlCategory).Select
    ActiveChart.Axes(xlCategory).MaximumScale = Int(Now()) + 7
    Application.CommandBars("Format Object").Visible = False
Run Code Online (Sandbox Code Playgroud)

我如何更改它以使其执行每个工作表上的每个图表?

    Do for each Sheet - how do I do that ?
        Do for each Chart - how do I do that ?
            Do the Biz - code as above, but quotes replaced by what ?
        Loop until what ?
    Loop until what ?
Run Code Online (Sandbox Code Playgroud)

CDP*_*802 6

Option Explicit
Sub update()
     Dim ws As Worksheet, cht As ChartObject, n As Integer, dt As Date
     dt = Date + 7
     For Each ws In ThisWorkbook.Sheets
          For Each cht In ws.ChartObjects
              cht.Chart.Axes(xlCategory).MaximumScale = dt
              n = n + 1
          Next
     Next
     MsgBox n & " charts updated to " & Format(dt, "yyyy-mm-dd"), vbInformation
End Sub
Run Code Online (Sandbox Code Playgroud)