我有一个数据集,该数据集从SharePoint导出到Excel,我们可以从中生成各种图表。
我需要简化“类别名称”,因为在某些情况下,它们太长了,会使图表看起来很糟糕。这些类别名称在我的办公室中以较短的首字母缩写而为人所熟知,因此可以将它们更改为这些首字母缩写。我大概有15个类别名称+替换首字母缩写词。
我想遍历工作簿中的所有图表,例如,执行以下操作:
一些基本的Google fu产生了一个基本的循环(下面,但不起作用),但是我对图表和标签对象还不够熟悉,无法进行下一步并对类别标签进行编辑。显然,我只想更改类别,而不是更改计算值-上述示例中的百分比。有人可以协助吗?
With ActiveChart
For k = 1 To .SeriesCollection.Count
For j = 1 To .SeriesCollection(k).Points.Count
If .SeriesCollection(k).Points(j).DataLabel.Caption = "AAAA" Then
.SeriesCollection(k).Points(j).DataLabel.Caption = "AA"
End If
Next j
Next k
End With
答案 0 :(得分:1)
一个想法可能是Replace
函数。
这可能会变得更强大,但应该让您入门:
Sub ShortenLabels()
Dim k As Long, j As Long
With ActiveChart
For k = 1 To .SeriesCollection.Count
For j = 1 To .SeriesCollection(k).Points.Count
With .SeriesCollection(k).Points(j).DataLabel
.Caption = Replace(.Caption, "AAAA", "AA")
.Caption = Replace(.Caption, "BBBB", "BB")
.Caption = Replace(.Caption, "CCCC", "CC")
End With
Next j
Next k
End With
End Sub