vba - Excel 2010 VBA - 使用变量定义的范围更新图形

标签 vba excel

我有一个每天更新的 Excel 工作表。我正在尝试使用每天添加的新数据(1 行)自动更新图表。

到目前为止我已经:

Sub UpdateGraphs()

    Dim latestRow As Integer

    Sheets("DailyJourneyProcessing").Select

    Range("A500").Select

    Do Until ActiveCell.Value = ""
        If ActiveCell.Value <> "" Then
            ActiveCell.Offset(1, 0).Select
        End If
    Loop

    ActiveCell.Offset(-1, 0).Select
    Application.CutCopyMode = False
    ActiveCell.EntireRow.Copy

    ActiveCell.Offset(1, 0).Select
    ActiveCell.EntireRow.PasteSpecial (xlPasteAll)

    Application.CutCopyMode = False

    latestRow = ActiveCell.row

    Dim str1 As String
    Dim rng1 As Range

    str1 = "=DailyJourneyProcessing!$F$180:$F$" & latestRow
    Set rng1 = Range(str1)

    Debug.Print "Got this far..."

    Set ActiveChart.SeriesCollection(1).Values = Range(str1)

我知道这看起来像是我只是复制前一行,但其中包含的公式会考虑数据的变化。

目前的 Integer/row 约为 520,所以我想做:

ActiveChart.SeriesCollection(1).Values = "=DailyJourneyProcessing!$F$180:$F$520"

行号每天都会变化。这是我需要自动化的大约 20 个范围更新之一,但一旦我解决了其中一个,其他的应该是相同的。

我已经尝试了网上能找到的所有方法,但没有任何效果。

目前,我收到运行时错误 91:未设置对象或 With block 变量。

如有任何帮助,我们将不胜感激。

最佳答案

实际上不需要 VBA 来完成此任务。您可以在this link中找到该方法。比VBA代码更容易管理和维护。另外,如果没有必要,最好不要使用 VBA!

但是,为了让您能够看到一种更有效的方法来编写您想要执行的操作,我提供了下面的代码。它很可能需要一些调整来适应您的实际数据集。

Sub UpdateGraphs()

    Dim wks As Worksheet, rng1 As Range
    Dim latestRow As Long ' changed to long to handle rows over 32,000 (whatever number Integer stops at)

    Set wks = Sheets("DailyJourneyProcessing")

    With wks

        latestRow = .Range("F" & .Rows.Count).End(xlUp).Row

        str1 = "=DailyJourneyProcessing!$F$180:$F$" & latestRow

        Set rng1 = Range(str1)

        Dim myChart As Chart
        Set myChart = .ChartObjects("myChartName")

        myChart.SeriesCollection(1).Values = rng1

    End With

End Sub

关于vba - Excel 2010 VBA - 使用变量定义的范围更新图形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13072096/

相关文章:

html - 将带换行符的 HTML 字符串粘贴到单个 Excel 单元格中

vba - 哪种方式更快? if elseif 或 select case

python - 写一个csv文件python

c# - 如何在 SSIS 中使用 C# 代码获取 Excel 文件最后保存的用户信息

java - 在java中将Excel电子表格解析为模型

单击所有按钮的 VBA 宏

vba - 当 SmartArt 位于占位符内时访问 SmartArt 形状 (PowerPoint 2007)

excel - 如何抑制更新链接警告?

string - 字符串连接的 '+' 和 '&' 之间有什么区别吗?

Excel VBA - 声明变量的不同方法