【问题标题】:Update Chart When New Row Of Data Is Added添加新数据行时更新图表
【发布时间】:2020-05-22 05:00:38
【问题描述】:

我正在研究宏,当新信息添加到数据表和视频或过滤一角钱行时会刷新图表

但是,每当我在数据表中添加新行时,图表格式都是错误的。请帮助我:(。这是我的代码:

Sub RangeRefresh()
 Dim vAddress As range, n As Long, c As range
 Dim lastRow
 lastRow = Cells(Rows.Count, "A").End(xlUp).Row

With Sheets("Chart1").SeriesCollection(1)
 Set vAddress = Sheets("Sheet1").range("A2:A" & lastRow & ",B2:B" & lastRow)

        n = 0 'for counting visible datapoints

    For Each c In vAddress.Cells

       'is the row visible? skip if not
       If Not c.EntireRow.Hidden Then
       n = n + 1 'next visible datapoint
       End If                            
   Next 
   End Sub

【问题讨论】:

  • 不需要 VBA。您可以使用dynamic named range 并将图表公式基于该范围。
  • 谢谢,但我需要使用 VBA,范围会不断变化,运行代码的按钮会对我有很大帮助。不过谢谢!!
  • 范围会不断变化 - 这就是使用动态命名范围的目的。将针对更改范围边界的任何数据进行调整。

标签: excel vba rows excel-charts


【解决方案1】:

我不确定你所说的“图表格式错误”是什么意思,所以我希望我的回答是正确的。

请查看此资源,您可以在那里找到更多帮助: https://docs.microsoft.com/fr-fr/office/vba/api/excel.seriescollection

我认为你可以适应

Charts("chart1").SeriesCollection.Add _
   source:=Worksheets("sheet1").Range("a1:a19")

类似

Charts("chart1").SeriesCollection.Add _
    source:=Worksheets("sheet1").Range("A"& lastRow)
Charts("chart1").SeriesCollection.Add _
    source:=Worksheets("sheet1").Range("B"& lastRow)

我希望它会起作用! 保重

【讨论】:

  • “我不确定你的意思”和“我认为你可以”不是答案。如果您有需要澄清的情况才能提供答案,请将其作为问题的评论发布。
  • 您好,感谢您提供的信息,我会注意下次:)
【解决方案2】:

所以,这是范围不断变化时的代码:

Sub RefreshRange()
Dim LastRow As Long
Dim Rng1 As range
With Sheets("Sheet1")
    LastRow = .range("A" & .Rows.Count).End(xlUp).Row
    Set Rng1 = .range("A2:A" & LastRow & ", B2:B" & LastRow)
End With

With ActiveChart
    .SetSourceData Source:=Rng1
End With

结束子

【讨论】:

    猜你喜欢
    • 2019-01-27
    • 1970-01-01
    • 2016-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-11
    • 2018-06-29
    • 2016-11-24
    相关资源
    最近更新 更多