在VBA中绘制对数刻度,但值为零

时间:2017-08-09 08:30:01

标签: excel vba excel-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"

我可以将所有数据传输到不同的工作表并转换零和从那里导入,但我非常希望避免这种情况。

希望有人知道解决方案。

最诚挚的问候 朗尼

1 个答案:

答案 0 :(得分: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