Excel VBA修改已创建图表数据源范围报错,求解决方法
解决VBA图表数据源设置报错问题
你报错的核心原因是:SetSourceData方法的Source参数要求传入Range对象,而不是单元格地址的字符串。你之前直接传了拼接后的字符串,VBA无法识别为有效的数据源范围。
修正后的代码可以这样写:
Dim LastRow As Long LastRow = 108 ' 先获取目标工作表上的Range对象 Dim chartRange As Range Set chartRange = Worksheets("MachineData").Range("B2:C" & LastRow) ' 为图表设置数据源 Worksheets("MachineData").ChartObjects("Chart 1").Chart.SetSourceData Source:=chartRange
如果不想额外定义变量,也可以直接在方法里指定Range:
Dim LastRow As Long LastRow = 108 Worksheets("MachineData").ChartObjects("Chart 1").Chart.SetSourceData _ Source:=Worksheets("MachineData").Range("B2:C" & LastRow)
如果运行还是报错,检查这几个细节:
- 确认工作表名称
MachineData拼写完全正确,没有空格或大小写错误 - 确认该工作表上确实存在名为
Chart 1的图表对象(可以通过Excel菜单栏的「开始」→「查找和选择」→「选择窗格」查看所有对象名称) - 确认
LastRow的值是合法的行号(这里108是有效行号,无需调整)
内容的提问来源于stack exchange,提问作者Sam
相关产品推荐
相关产品推荐

