我正在处理以下代码:
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时,也会得到Method or data member not found。
发布于 2016-09-07 15:03:14
你知道,真正的原因是什么很有趣,但现在代码起作用了:
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实际上,如果你将代码中的“轴”改为“轴”,你也可以得到一个工作代码:)享受它!: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 Subhttps://stackoverflow.com/questions/39373161
复制相似问题