0

如何让 Excel 或 PowerPoint 堆叠条形图不显示 #N/As?我有这样的数据

日期销售网

12 年 1 月 1.5 .5

2 月 12 日 2.6 1.5

啦〜啦〜啦

啦〜啦〜啦

我有 N?As 在数据范围内,因为它们可能会在某个时候获取数据,因此是动态的。我不想使用偏移量,因为它在 Powerpoint 中创建的图表中效果不佳。有超过 125 张幻灯片和 100 多张图表,因此手动更改并不好。我在 Powerpoint 中创建图表,然后在图表后面添加指向数据页面的链接。更新很好,但是在断开所有这些链接之后(我有一个宏),命名范围的偏移量将不会更新,因为公式需要一个工作表名称(如 Sheet1!),但 Powerpoint 将其称为“Microsoft PowerPoint 中的图表” .

我希望我已经解释得够多了。谢谢

4

1 回答 1

0

由于我无法使用偏移量或命名范围来获得良好效果,因此我创建了这个 PPT 宏来重置数据中的数据范围 1) 任何不绘制图表的数据行的 x 轴值为零而不是 #N /A 2) 在数据表的 F1 中必须计算图表的行数,使用 countif not = 0 3) 命名图表,我使用 StackedBar1 运行宏

如果有人有更简单的解决方案,请告诉我。

Sub C_SetSourceData_StackedBar()
Dim s As Slide
Dim shp As Shape

For Each s In ActivePresentation.Slides   'moves through all slides in presentation
For Each shp In s.Shapes                  'moves through each shape on slide
    If shp.Name = "StackedBar1" Then      ' stacked bar chart that needs source data updated is named this

        Set c = shp.Chart                 'set c to the chart object

        Dim data As ChartData
        Set data = c.ChartData             'sets data to the chartdata behind the chart
        data.Activate                       'need to activate the chartdat(excel sheet)

            'in cell F1 the formula =countif(A1:A50,"<>0")  this counts the rows that are not zero
        x = data.Workbook.Worksheets(1).Range("F1").Value  'gets the last row number of data not zero
        Let rng = "Sheet1!$A$1:$E$" & x                    ' creates the source range as a string

       c.SetSourceData (rng)                               ' Sets the new source data range

        data.Workbook.Close                                 ' Close the chartdata workbook
    End If
Next shp
Next s
End Sub
于 2012-12-05T18:04:01.603 回答