一次更改大量图表中的元素(Microsoft Excel)
克里斯有一个工作簿,其中包含许多小的相同图表。他想一次更改每个图表中元素的某些属性,例如颜色或字体大小。
如果您发现自己经常使用“非默认”图表(这意味着在创建图表后更改某些图表元素的外观),那么一种很好的方法是创建自定义图表并将该格式保存在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及更高版本)找到本技巧的版本: