在所有工作表中删除所有图表中的网格线

我正在处理下面的代码:

Sub RemoveGridlines() Dim axs As Axes Dim ws As Worksheet Dim objCht As ChartObject For Each ws In Worksheets ws.Activate For Each objCht In ws.ChartObjects With objCht.Chart For Each axs In objCht.Chart .Axes.HasMajorGridlines = False .Axes.HasMinorGridlines = False Next axs End With Next objCht Next ws End Sub 

并挂上For Each axs In objCht.Chart作为一个对象不匹配。 我试图添加.axes线,但不会继续。 我怎样才能得到这个循环通过每个轴,图表和工作表? 即使当我删除.Chart并从后续行中删除.Axes我findMethod or data member not found

你知道,真正的原因是什么,但现在的代码工作:

 Sub RemoveGridlines2() Dim axs As Axis Dim ws As Worksheet Dim objCht As ChartObject Dim k As Chart For Each ws In Worksheets For Each objCht In ws.ChartObjects Set k = Sheets(ws.Name).ChartObjects(objCht.Name).Chart For Each axs In k.Axes axs.HasMajorGridlines = False axs.HasMinorGridlines = False Next Set k = Nothing Next objCht Next ws End Sub 

实际上,如果您在“DIM”中的代码中将“AXES”更改为“AXIS”,您可能还会得到一个工作代码:)享受它! :d

编辑:这就是你的代码应该是这样的:

 Sub RemoveGridlines() Dim axs As Axis Dim ws As Worksheet Dim objCht As ChartObject For Each ws In Worksheets ws.Activate For Each objCht In ws.ChartObjects For Each axs In objCht.Chart.Axes axs.HasMajorGridlines = False axs.HasMinorGridlines = False Next axs Next objCht Next ws End Sub