excel - 在 VBA 中更新预制图表
问题描述
我在名为“摘要”的选项卡中有一些预制图表,我希望它从名为“数据”的选项卡中提取数据。通过预制,我只是插入了带有标题和轴的散点图,我只想更新 X 和 Y 值。“数据”选项卡有一堆链接到另一个工作簿的单元格。我也尝试过从头开始制作图表,这是我以前做过的,但是当我将它转移到这个项目时,该文件中的代码不起作用。
开始日期和结束日期的索引工作正常,在我尝试实际更新 X 和 Y 值之前一切正常。我收到“错误 1004 应用程序定义或对象定义错误”
这是我用来更新预制图表的代码:
Option Explicit
Public Sub UpdateCharts()
Dim i As Integer, j As Integer, flag As Integer, k As Integer, n As Integer, w As Integer
Dim enddate As Date
Dim startdate As Date
enddate = Worksheets("Summary").range("A2")
startdate = Worksheets("Summary").range("A3")
i = 1
j = 1
k = 1
n = 1
'Index the column that has the enddate
Do
If Worksheets("Data").Cells(2, j + 2) = enddate Then
i = j + 2
flag = 1
End If
j = j + 1
Loop While flag = 0
flag = 0
'Index the column that has the startdate
Do
If Worksheets("Data").Cells(2, n + 2) = startdate Then
k = n + 2
flag = 1
End If
n = n + 1
Loop While flag = 0
For w = 1 To Worksheets("summary").ChartObjects.Count
Worksheets("summary").ChartObjects(w).Name = w
Next w
'Error happens here
Worksheets("summary").ChartObjects(1).SeriesCollection(1).XValues = Worksheets("data").range(Cells(2, i), Cells(2, k)).Value
Worksheets("summary").ChartObjects(1).SeriesCollection(1).Values = Worksheets("data").range(Cells(3, i), Cells(3, k)).Value
End Sub
`
解决方案
改变
'Error happens here
Worksheets("summary").ChartObjects(1).SeriesCollection(1).XValues = Worksheets("data").range(Cells(2, i), Cells(2, k)).Value
Worksheets("summary").ChartObjects(1).SeriesCollection(1).Values = Worksheets("data").range(Cells(3, i), Cells(3, k)).Value
至
'No more error
Worksheets("summary").ChartObjects(1).SeriesCollection(1).XValues = Worksheets("data").range(Cells(2, i), Cells(2, k))
Worksheets("summary").ChartObjects(1).SeriesCollection(1).Values = Worksheets("data").range(Cells(3, i), Cells(3, k))
.XValues
并且.Values
可以接受我更改的代码提供的范围或一维数组。您的代码,带有.Value
,提供二维数组,它阻塞.XValues
和.Values
.
推荐阅读
- javascript - 你好 !反应问题我需要事件处理程序的帮助
- c# - System.Data.SqlClient.SqlException:'无效的列名'Project_ID_Backend'。'
- slick.js - 如何将导航链接(点)添加到光滑的灯箱?
- javascript - AngularJS Live 重新加载已启用。这是问题吗?
- javascript - 将无穷大与数字 javascript 进行比较
- javascript - 为什么我的函数会自行运行,而不是单击按钮?
- javascript - 错误类型错误:无法读取 Object.eval 处未定义的属性“0”| 角 10
- ios - 是否可以加载 ios 应用程序的调试版本来测试飞行?
- python - Python:有没有办法只打印字符串中的指定字符,而让其他字符为空?
- npm - 权限被拒绝@ apply2files - /usr/local/lib/node_modules/node-red/node_modules/websocket-stream/node_modules/ws/lib/.DS_Store