从Access VBA中设置Excel图表的数据源



在几个小时的搜索中,我还没有找到任何可行的解决方案,所以我开始了。

我通过vba导出一些数据,从访问excel,格式化excel和移动工作表,然后生成图表。当我在excel宏中测试它时,我能够使用SetDataSource方法来调整范围,但是当我移动到Access时,它不喜欢这个方法,并且会抛出438的运行时错误,"对象不支持此属性或方法"。简化代码如下:

Dim xl as Object, wb as Object
Set xl = CreateObject("Excel.Application")
With xl
.Visible = False
.displayalerts = False
Set wb = .workbooks.Open(wbookpath)
'formatting code that all works fine
.Charts.Add
'add was called from sheet 11, popped up before 11 and am moving to end
.Sheets(11).move after:=.Sheets(12)
With Charts(1)
.SetSourceData .Range("Master!$A$1:$G$11")
'other chart formatting code that all works fine
End With
.activeworkbook.Close (True)
.Quit
End With

我也试过更改源代码,例如

.SetSourceData .Sheets("Master").Range("$A$1:$G$11")

改变从哪里调用它,例如

.Charts.Add
wb.Charts(1).SetSourceData .Range("Master!$A$1:$G$11")
With .Charts(1)
'rest of code

但是它不影响被抛出的错误。

我如何获得访问权限来调整我的图表来源?如果我能让这个工作,那么我就可以继续做大量其他的图表。

这个语法适合我:

With wb.Charts(1)
.SetSourceData Source:=Sheets("Master").Range("$A$1:$G$11")
'other chart formatting code that all works fine
End With

参考https://learn.microsoft.com/en-us/office/vba/api/excel.chart.setsourcedata

相关内容

  • 没有找到相关文章

最新更新