VBA – 在条形图内写入值

所以我把这个图表做成了VBA

在这里输入图像说明

现在我想把数据放在小节里,所以它看起来像这样:

在这里输入图像说明

你能帮我吗?

我得到这个图表的代码是:

Set rng = ActiveSheet.Range("A" & x & ":C" & (x + 4)) ' in brackets (Left, Top, Widht, Height) >> modify according to your needs Set cht = ActiveSheet.ChartObjects.Add(550, 100 * (i - 4), 300, 100) With cht .Chart.SetSourceData Source:=rng .Chart.PlotBy = xlColumns .Chart.ChartType = xlBarStacked .Chart.HasAxis(xlValue) = False .Chart.HasLegend = False .Chart.HasTitle = True .Chart.ChartTitle.Text = Application.Sheets(i).Name .Chart.ChartTitle.Font.Size = 10 .Chart.Axes(xlValue).HasMajorGridlines = False .Chart.Parent.Name = Application.Sheets(i).Name End With cht.Activate ActiveChart.ChartGroups(1).GapWidth = 10 With ActiveChart.Axes(xlCategory).TickLabels.Font .Bold = msoFalse .Size = 8 End With Set cht_Series = cht.Chart.SeriesCollection(1) cht_Series.Format.Fill.ForeColor.RGB = RGB(255, 255, 255) Set cht_Series = cht.Chart.SeriesCollection(2) cht_Series.Format.Fill.ForeColor.RGB = RGB(134, 188, 37) 

谢谢!

为了得到你想要的,你需要在你的代码的最后添加这行:

 ActiveChart.SeriesCollection(2).HasDataLabels = True 

既然你已经定义了一个seriescollection对象,这也可以工作:

 cht_Series.HasDataLabels = True 

你需要设置series.HasDataLabels = trueseries.datalabels.Position = xlLabelPositionCenter (或者非常相似,不能用Excel来检查)。