vba图表#n / a隐藏

时间:2018-09-18 03:07:30

标签: excel charts

这是一个折线图:

=SERIES("a",{43160,43161,43162,43163,43164},{3000,4000,#N/A,2000,4000},1) 点2直接连接到点4。

但是我想隐藏点3附近的线段,即线段1:点1到点2,线段2:点4到点5。

当我将数据复制到excel单元格,并删除“#N / A”,然后手动绘制图表时,它将获得正确的图表。

但是上面的代码是由vba生成的,最终图表必须包含所有数据,没有单元格引用。 如何隐藏图表中的“#n / a”?

3 个答案:

答案 0 :(得分:0)

Jon Peltier在他的网站上有一个解决方案:Another approach to plotting gaps in Excel chartsPlot Blank Cells and #N/A in Excel Charts

基本原理是创建一个命名范围,如果填充的单元格包含错误,则该范围引用空白单元格。这是一个很长的公式,因为它需要依次查看每个值。

在单元格Sheet1!B1:B5Sheet1!C1:C5中包含空单元格的数据中,您将创建以下命名范围:

=IF(ISNUMBER(Sheet1!$B$1),Sheet1!$B$1,Sheet1!$C$1),IF(ISNUMBER(Sheet1!$B$2),Sheet1!$B$2,Sheet1!$C$2), IF(ISNUMBER(Sheet1!$B$3),Sheet1!$B$3,Sheet1!$C$3), IF(ISNUMBER(Sheet1!$B$4),Sheet1!$B$4,Sheet1!$C$4),IF(ISNUMBER(Sheet1!$B$5),Sheet1!$B$5,Sheet1!$C$5)  

这将检查每个单元格是否包含数字,如果不是,则引用其旁边的单元格。

使用命名范围作为您的系列值=Book1!MySeries

如果您使用的是Excel 2016,则可以在选择数据源对话框中单击隐藏和空单元格,然后勾选将#N / A显示为空单元格

答案 1 :(得分:0)

非常感谢你们。问题解决了。

.Format.Line.Visible = False

数据集无法更改,但是我可以更改线段格式。当应该显示点3的间隙时,我可以更改点4的属性以将线段从3隐藏到4。

答案 2 :(得分:0)

我在教程Plot Blank Cells and #N/A in Excel Charts中写下了所有相关内容,但这是简短版本。

如果您使用的是Office 365,或者我认为任何版本的Excel 2016,Microsoft最终都会回答我们的要求,并为我们提供一种在图表中绘制差距的方法,而不是使用实际的空白单元格。无论是在工作表中还是在系列公式中进行硬编码,它都适用于#N / A。

下面,我在一个范围和一个图表中显示您的数据(您无法确定,但是图表实际上使用您的公式,而不是工作表范围)。如果您的Excel版本足够新,请在图表上单击鼠标右键,然后从弹出菜单中选择“选择数据”。然后单击“隐藏和空单元格”按钮。在较早版本的Excel中,Empty表示完全为空,没有值,没有看起来为空的空格字符,没有返回空字符串“”的公式。但是在“隐藏和空单元格设置”对话框中,我们可以选择将空单元格显示为空白,这是默认设置,也可以选中一个框以将“#N / A显示为空单元格”,我认为这也是默认设置。结果是图表以#N / A值代替间隙。由于这些是默认设置,并且您在询问问题,因此我怀疑您的Excel版本没有执行此操作。

enter image description here