Re: [VBA ] Access 2013 Getobject錯誤
※ 引述《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
→
01/30 09:38, , 1F
01/30 09:38, 1F
討論串 (同標題文章)