在Excel VBA中使系列跳过负值?

截至目前这段代码创build3个图表。 最后一张图有两个系列。 第二个序列从负数开始,所以我把cht.Axes(xlValue).MinimumScale = 0放在下面的代码末尾,使y轴从零开始,不pipe怎样。 唯一的问题是它使我的图看起来混乱。 有什么我可以添加到现有的代码,使第二个系列跳过input负数,并从第一个0或正数开始?

  Sub UpdateCharts() Dim cObj As ChartObject Dim cht As Chart Dim shtName As String Dim chtName As String Dim xValRange As Range Dim lastRow As Long With ActiveSheet lastRow = .Range("B" & .Rows.Count).End(xlUp).Row Set xValRange = .Range("B2:B" & lastRow) shtName = .Name & " " End With '## This sets values for Series 1 in each chart ##' For Each cObj In ActiveSheet.ChartObjects Set cht = cObj.Chart chtName = shtName & cht.Name If cht.SeriesCollection.Count = 0 Then '## Add a dummy series which will be replaced in the code below ##' With cht.SeriesCollection.NewSeries .Values = "{1,2,3}" .XValues = xValRange End With End If '## Assuming only one series per chart, we just reset the Values & XValues per chart ##' With cht.SeriesCollection(1) '## Assign the category/XValues ##' .Border.Color = RGB(0, 0, 255) .XValues = xValRange '## Here, we set the range to use for Values, based on the chart name: ##' Select Case Replace(chtName, shtName, vbNullString) Case "RPM" .Values = xValRange.Offset(0, 3) '## Column E is 3 offset from the xValRange in column B .Name = "RPM" Case "Pressure/psi" .Values = xValRange.Offset(0, 5) '## Column G is 5 offset from the xValRange in column B .Name = "Pressure/psi" Case "Burn Off" .Values = xValRange.Offset(0, 6) '## Column H is 6 offset from the xValRange in column B .Name = "Demand burn off" '## Make sure this chart has 2 series, if not, add a dummy series ##' If cht.SeriesCollection.Count < 2 Then With cht.SeriesCollection.NewSeries .XValues = "{1,2,3}" End With End If '## add the data for second series: ##' cht.SeriesCollection(2).XValues = xValRange cht.SeriesCollection(2).Values = xValRange.Offset(0, 8) '## Column J is 8 offset from the xValRange in column B cht.SeriesCollection(2).Name = "Step Burn Off" cht.SeriesCollection(2).Border.Color = RGB(255, 0, 0) Case "Add as many of these Cases as you need" End Select End With cht.Axes(xlValue).MinimumScale = 0 Next End Sub 

这是图像: 烧掉

如果我很好地理解你的问题,一个非常简单的方法就是select具有负值的系列的条形图或标记。

在graphics中select你的系列 – >左键点击 – >格式系列,在第二个选项下select“显示标记”,然后在行颜色选项(第四下)你设置行不可见。

这是一个例子: 燃烧器的例子

在VBA中,玩的属性将会像下面这样:

 ChartObjects("Graphique 1").MarkerStyle = -4109 With Selection code .MarkerStyle = 3 .MarkerSize = 10 End With