2017-08-09 39 views
1

我有一个问题,可能没有一个好的解决方案,但我不妨试试。在VBA中绘制对数刻度,但零值

我有地块,我需要使用日志规模来正确可视化数据。但是,由于我的限制(也是plottet)可以包含0个值,所以Excel出错了,这是有道理的。由于绘图仅用于视觉比较,我可以绘制fx 0.000000001而不是零。有没有办法将If语句添加到下面的导入代码中?零值将出现在y值中。

ActiveSheet.ChartObjects("Chart1").Activate 

ActiveChart.SeriesCollection.NewSeries 
ActiveChart.FullSeriesCollection(1).Name = "LSL" 
ActiveChart.FullSeriesCollection(1).XValues = "=Data!$B$7:$F$7" 
ActiveChart.FullSeriesCollection(1).Values = "=Data!$B$9:$F$9" 

我所有的数据转移到一个不同的表,并从那里零的和进口变换,但我非常希望避免这种情况。

希望有人知道一个解决方案。

问候 朗尼

回答

0

,你可以通过一系列循环,使图表之前编辑值。

Dim rng As Range 
Dim cell As Range 

Set rng = Range("B7:F7") ' change to your range 
For Each cell In rng 
    If cell.Value = 0 Then 
     cell.Value = 0.0000001 
    End If 
Next cell 


ActiveSheet.ChartObjects("Chart1").Activate 

ActiveChart.SeriesCollection.NewSeries 
ActiveChart.FullSeriesCollection(1).Name = "LSL" 
ActiveChart.FullSeriesCollection(1).XValues = "=Data!$B$7:$F$7" 
ActiveChart.FullSeriesCollection(1).Values = "=Data!$B$9:$F$9" 

代码完成后,这是结果。

enter image description here

+0

嗨安德烈亚斯,感谢您的解决方案。问题是我正在显示限制,因此范围中描述的限制必须是实际限制,意味着为零。我可以在不更改范围内的值的情况下执行此操作吗? – La82

+0

@ La82所以你需要表中的实际数字,但图表中的“假”?如果没有第二张桌子/床单,我认为你不能这样做。 – Andreas

+0

是啊。没有想象的那么多,但我希望有一种方法可以将它存储为一个范围而不用绘制这些值。我只需要添加另一张表格。 – La82