2017-08-09 122 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