Powerpoint VBA - 为DataLabels设置DataRange

时间:2015-12-22 21:19:35

标签: powerpoint powerpoint-vba

我不知道如何使用VBA为DataLabels设置DataRange。 Powerpoint也没有录制功能。

有人可以告诉我使用VBA吗? enter image description here

2 个答案:

答案 0 :(得分:2)

完成此任务的代码如下:

Dim myChart As Chart
Dim mySerCol As SeriesCollection
Dim strRange As String

strRange = "=Sheet1!$F$2:$F$5" 'To hold the range for the new labels

Set myChart = ....[put in code to get the appropriate chart]
Set mySerCol = myChart.SeriesCollection(i)
mySerCol.ApplyDataLabels 'Turn on the datalabels for this series

'The next line sets the range to get the values from
mySerCol.Format.TextFrame2.TextRange.InsertChartField msoChartFieldRange _
               , strRange, 0
mySerCol.ShowRange = True 'Show the values from the range
mySerCol.ShowValue = False 'Do not show the actual values of the points

请注意,这只会针对其中一个系列执行此操作。要做其他的,在myChart.SeriesCollections(i)行中遍历i。

答案 1 :(得分:1)

****编辑****见其他答案。我要离开这里,因为它提供了一些可以使用的对象的信息,但实际上并没有解决问题。

这不是问题的完整答案,但这对评论来说太长了。

我搜索了Datalabels的文档并且无法弄清楚如何执行此操作(我假设您希望能够使用VBA定义标签的范围)。我能够“检查”复选框,但无法确定附加到它的范围。要检查的相应代码。

要选中该复选框,请使用以下代码:

 myChart.SeriesCollection(i).ApplyDataLabels

其中i是有问题的系列,myChart是引用图表的Chart对象。此方法有许多参数可以显示不同的项目(百分比,值等),但没有参数是范围。

如果您未输入任何可选参数

,则默认为系列的值

然后可以使用以下方式打开和关闭它:

myChart.SeriesCollection(i).DataLabels.ShowRange = True/False

可以使用以下方法更改Datalabels的标题:

myChart.SeriesCollection(i).DataLabels(j).Caption = "MY CAPTION"

这将一次更改一个标题,它将替换“ApplyDataLabels”方法放在那里的值。可以遍历范围来设置值,但这可能不是您想要的。

还有这个:

myChart.SeriesCollection(i).HasDataLabels = True

但这似乎只是打开和关闭它们并重置你可能放在那里的字幕。

MSDN链接同时使用hasdatalabels属性和applydatalabels方法,但不清楚他们为何同时使用这两种方法:https://msdn.microsoft.com/EN-US/library/office/ff745965.aspx

希望这至少可以为您提供一些开始。

相关问题