作者roaerwang (YKWIA)
看板Visual_Basic
标题Re: [VBA ] Access 2013 Getobject错误
时间Wed Jan 30 00:16:49 2013
※ 引述《roaerwang (YKWIA)》之铭言:
: 各位好
: 目前使用VBA欲在Access 2013表出呼叫Excel档案(xlsx)
: 并再利用程式码自动绘制图表(圆饼图)
: 写了以下程式码:
: ++++++++++++++++++++++++代码开始++++++++++++++++++++++++++++++++
: Public Sub CreateExcelPie(ByVal SourceObject As String)
: '---------------------------------------------------------
: '建立Excel圆饼图。原则上是利用程式开启Excel建立。
: 'SourceOject:xlsx档的「完整路径」,字串。
: '---------------------------------------------------------
: Dim CRTExcelFile As Object
: Set CRTExcelFile = Nothing
: Err.Clear
: '---开启档案
: Set CRTExcelFile = GetObject(SourceObject)
: '---建立图表。以下程式码为直接利用Excel巨集录制。
: With CRTExcelFile.Application
: .ActiveSheet.Shapes.AddChart2(251, xlPie).Select
: .ActiveChart.SetSourceData Source:=.Range("TEMP_Month_月收入!$A:$B")
: (中略)
: End With
: Set CRTExcelFile = Nothing
: End Sub
: 结果其它地方输入sourceobject引数(完整路径)呼叫这个副程式
: 每次到了with下(反黄的那行)就会出现编号91的错误
: 请问这应该要怎麽解决?
自行解答。
观查了GetObject的行为後,发现了一点:
GetObject只是告诉Excel说要执行了,因为有个SourceObject要进来
但Excel并不知道「要把档案打开来才能编辑」
所以之前发生编号91的错误时,只要我手动打开档案就可以继续动作。
目前解决方法是在with的底下加上开启档案的指令变成这样:
……(前略)……
With CRTExcelFile.Application
.WorkBooks.Open FileName:=SourceObject
.ActiveSheet.Shapes.AddChart2(251,xlPie).select
……(下略)……
SourceObject是「字串」,是档案的「绝对路径」
希望给遇到相同问题的人参考参考!
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.135.111.93
1F:→ MOONRAKER:赞 01/30 09:38