Re: [VBA ] Access 2013 Getobject錯誤

看板Visual_Basic作者 (YKWIA)時間13年前 (2013/01/30 00:16), 編輯推噓0(001)
留言1則, 1人參與, 最新討論串2/2 (看更多)
※ 引述《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
文章代碼(AID): #1H1_Nq-b (Visual_Basic)
文章代碼(AID): #1H1_Nq-b (Visual_Basic)