在VBA中以日志为单位进行绘图,但具有零值

我有一个问题,可能没有一个好的解决办法,但我不妨试试。

我已经绘制了需要使用log scale来正确显示数据的地方。 但是,由于我的限制(也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" 

我可以将所有的数据传输到不同的表格,并将零点转换并从那里导入,但是我非常想避免这种情况。

希望有人知道解决scheme。

最好的问候朗尼

在制作图表之前,您可以遍历范围并编辑值。

 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" 

代码完成后,这是结果。

在这里输入图像说明