相關的VBA新手在這裏。我使用Public Sub 「RefreshExcel」創建了一個新模塊「QCDataRefresh」,用於在後臺打開Excel電子表格(位於我的網絡驅動器中)並刷新它。這是爲了刷新包含在所述電子表格中的許多數據鏈接。訪問VBA:SUB旨在刷新Excel電子表格給出錯誤
下面是該子代碼:
Public Sub RefreshExcel()
Dim appExcel As Object
Set appExcel = CreateObject("Excel.Application")
appExcel.workbooks.Open ("\\renssfile2\shares\Supply Chain Project Management\QCData.xlsx")
appExcel.activeworkbook.refreshall
Set appExcel = Nothing
End Function
運行此給出了一個運行時錯誤「1004」:「應用程序定義或對象定義的錯誤調試似乎要突出的代碼行」 appExcel .activeworkbook.refreshall「。不知道爲什麼呢?
此外,我也試圖在Access中創建一個按鈕來從我的儀表板運行這個。爲此,我創建了一個新的按鈕,並創建了一個新的事件過程爲此題爲「Command101_Click」。
以下是該事件,它試圖在點擊按鈕來運行我RefreshExcel子代碼:
Private Sub Command101_Click()
QCDataRefresh.RefreshExcel
End Sub
當我運行這個事件,我希望它給我從我上面的刷新功能相同的錯誤。但是,它會打開一個窗口,要求我選擇一個宏。我不確定我的錯誤在哪裏,但我相信這一定是一個簡單的疏忽。對此也有想法?
謝謝大家!
爲什麼你的子程序定義爲「Private Sub Command101_Click(RefreshExcel)」也許把「RefreshExcel」部分拿出來?另外,一個函數應該返回一些東西。您應該將過程聲明爲子例程而不是函數,因爲它不會返回任何內容.... Public Sub RefreshExcel()。不知道這是否會解決問題。 – OpiesDad 2015-03-13 19:13:36
這很有道理。我繼續前進並做出了兩處修改(編輯原稿以反映它們)。不幸的是,這兩個問題似乎依然存在不過謝謝。 – user333102 2015-03-13 19:28:54
也許沒有活動手冊。嘗試調試打印activeworkbook.name,看看有沒有。再次,不確定,但值得一試。 – OpiesDad 2015-03-13 19:36:08