如何在Excel VBA中设置图表数据标签的「允许文本溢出形状」为True?
复制Excel图表到新工作簿解除透视表链接,并同步数据标签格式
我最近折腾出一个VBA宏,专门解决Excel里图表和数据透视表绑定太死的问题——把图表复制到新工作簿,就能彻底断开它和原透视表的链接,之后给新图表指定新的数据源,最后调整数据标签的格式,就能让新图表和原图表的外观完全一致。
下面是设置数据标签格式的核心代码段:
' 选中数据标签相关区域 ActiveChart.ChartArea.Select ActiveChart.FullSeriesCollection(1).DataLabels.Select ' 给数据标签应用自定义格式 With Selection .ShowCategoryName = True ' 根据原图表需求设置是否显示分类名称 .ShowValue = True ' 控制是否显示数值 .Font.Size = 10 ' 匹配原图表的字体大小 .Font.Color = RGB(0, 0, 0) ' 设置字体颜色,和原图表保持一致 .Position = xlLabelPositionOutsideEnd ' 对齐原图表的标签位置 ' 还可以添加更多格式属性,比如.ShowSeriesName = False 之类的 End With
简单说下这段代码的逻辑:先选中整个图表区域,再定位到第一个数据系列的标签,然后通过With Selection批量设置格式。你只需要对照原图表的样式,调整这些属性的值就行,比如原图表显示分类名称就把.ShowCategoryName设为True,不显示就设为False,字体大小、颜色、标签位置这些也都跟着原图表来改。
整个宏的流程大概是这样:
- 复制原图表到新建的工作簿,这一步会自动解除图表和数据透视表的链接
- 给新图表指定新的数据源(比如普通的单元格区域)
- 运行上面的代码段同步数据标签格式,让新图表和原图表外观一致
内容的提问来源于stack exchange,提问作者Danny Beckett
相关产品推荐
相关产品推荐

