改变瀑布图的Y轴

问题描述 投票:0回答:1
我想使用VBA代码在Excel电子表格中更新所有瀑布图。我需要在最大值的105%和最小值的95%之间的y轴。 但是我无法获得此运行,因为在此行上存在错误(对象不支持此操作)。有任何解决方案?

values = srs.values
这里是下面的代码。

Sub AdjustWaterfallYAxis() Dim ws As Worksheet Dim cht As ChartObject Dim srs As Series Dim minValue As Double Dim maxValue As Double Dim newMin As Double Dim newMax As Double Dim i As Integer Dim values As Variant Dim cell As Range ' Loop through each worksheet For Each ws In ThisWorkbook.Worksheets ' Loop through each chart object in the worksheet For Each cht In ws.ChartObjects ' Check if the chart is a waterfall chart If cht.Chart.ChartType = xlWaterfall Then ' Initialize min and max values minValue = Application.WorksheetFunction.Min(ws.Range("A1:A10").Value) maxValue = Application.WorksheetFunction.Max(ws.Range("A1:A10").Value) ' Loop through each series in the chart For Each srs In cht.Chart.SeriesCollection values = srs.Values For Each cell In ws.Range(values.Address) If cell.Value < minValue Then minValue = cell.Value End If If cell.Value > maxValue Then maxValue = cell.Value End If Next cell Next srs ' Calculate new Y-axis range newMin = minValue * 0.95 newMax = maxValue * 1.05 ' Set new Y-axis range With cht.Chart.Axes(xlValue) .MinimumScale = newMin .MaximumScale = newMax End With End If Next cht Next ws End Sub

	
wape。
excel vba
1个回答
0
投票

srs.Values
    是一个值的数组,而不是一个范围。
  1. 在瀑布图中,
    srs.Values

    返回错误,“对象不支持此操作”
  2. 要找到图表系列的数据范围,您需要解析系列公式。看起来像
    =系列(Sheet1!$ C $ 2,Sheet1!$ B $ 3:$ B $ 7,Sheet1!$ C $ 3:$ C $ 7,1)

    这意味着
  3. =系列(系列名称,x值,y值,串联编号)
  4. 在我的博客上的excel图表系列公式

    中阅读有关此的信息。


    通常,您可以使用
    srs.Formula获得系列公式。将公式按逗号分开,您可以提取范围。

  5. 在瀑布图中,
  6. srs.Formula

    返回与

    srs.Values
    的相同错误。

  7. Excel瀑布图很难使用,因为它们仅具有不完整的用户界面控件(尝试设置Y轴主要单元),甚至不太完整的VBA覆盖范围。需要瀑布图表的人自己滚动或使用加载项(例如我的),从而从常规图表中产生更有用的瀑布。

    您仍然可以通过直接对数据范围进行采样,忽略图表中的内容。与常规图表不同,您必须知道数据范围在哪里,因为Excel Waterfall无法告诉您。

    	
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.