克里斯有一个工作簿,其中包含许多小的相同图表。他想一次更改每个图表中元素的某些属性,例如颜色或字体大小。

如果您发现自己经常使用“非默认”图表(这意味着在创建图表后更改某些图表元素的外观),那么一种很好的方法是创建自定义图表并将该格式保存在Excel中。然后,您可以使用保存的格式来创建所有新图表,从而最大程度地减少以后需要进行的格式化。 ExcelTips的其他问题已涵盖了如何保存自定义图表格式。

自定义图表格式可能对将来很有用,但是如果您在现有工作簿中已经有一堆图表,这将无济于事。在这种情况下,最好的解决方案是使用宏,该宏可以逐步浏览工作簿中的所有图表并进行所需的更改。您只需要预先决定要更改的项目,然后对宏进行编程以专门更改这些项目。

例如,以下宏更改了Y轴标签的字体颜色和大小。它遍历工作簿中的所有图表,包括工作表和嵌入式图表。

Sub ChangeAllCharts1()

Dim cht As Chart     Dim sht     Dim ChtObj As ChartObject

For Each cht In ActiveWorkbook.Charts         With cht.Axes(xlValue).TickLabels.Font             .Size = 20             .Color = vbRed         End With     Next

For Each sht In ActiveWorkbook.Sheets         For Each ChtObj In sht.ChartObjects             With ChtObj.Chart.Axes(xlValue).TickLabels.Font                 .Size = 20                 .Color = vbRed             End With         Next     Next End Sub

如此处所写,宏将字体大小更改为20,将颜色更改为红色。如果希望宏更改其他元素,则只需更改With语句以反映要更改的元素,或者可以使用For …​ Next循环逐步遍历所有图表元素。下面的宏展示了此技术,更改了工作簿中图表的背景色。

Sub ChangeAllCharts2()

On Error Resume Next     NewChartAreaColor = 34

For J = 1 To ActiveWorkbook.Charts.Count         ActiveWorkbook.Charts(J).Select

'The pairs of line code indicate desired changes         ActiveChart.ChartArea.Select         Selection.Interior.ColorIndex = NewChartAreaColor     Next J

For J = 1 To ActiveWorkbook.Sheets.Count         For K = 1 To Sheets(J).ChartObjects.Count             Sheets(J).Select             Sheets(J).ChartObjects(K).Activate

'The pairs of line code indicate desired changes             ActiveChart.ChartArea.Select             Selection.Interior.ColorIndex = NewChartAreaColor         Next K     Next J End Sub

注意:

如果您想知道如何使用此页面(或_ExcelTips_网站上的任何其他页面)中描述的宏,我准备了一个特殊页面,其中包含有用的信息。

_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。

本技巧(3125)适用于Microsoft Excel 97、2000、2002和2003。可以在以下功能区中为Excel的功能区界面(Excel 2007及更高版本)找到本技巧的版本: