2015-12-13 133 views
0

我在一個系統上安裝了Office 2010(32位)和Office 2013(64位)。
他們都單獨運行良好。
然後有一天Office 2013說有一些更新要安裝,我同意並讓它安裝更新。 現在,當我在Excel 2010中執行以下VBA代碼時,它將在Excel 2013中打開工作簿,並針對該工作簿運行我的查詢,而不是我已打開的工作簿。其他版本的Excel中的JET/ACE打開工作簿

Set conn = New ADODB.Connection 
conn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & ThisWorkbook.FullName & ";Extended Properties='Excel 12.0;HDR=YES';" 

已發生其他事情,例如Excel 2013現在默認打開所有Excel工作簿。

我嘗試使用「設置關聯」將Excel 2010(C:\ Program Files(x86)\ Microsoft Office \ Office14 \ EXCEL.EXE)設置爲默認值,但Excel 2013仍在打開它們。

右鍵單擊文件,並選擇與開放......並選擇

C:\ Program Files文件(x86)的\的Microsoft Office \ OFFICE14 \ EXCEL.EXE

打開它Excel中2013

如果我手動運行

C:\ Program Files文件(x86)的\的Microsoft Office \ OFFICE14 \ EXCEL.EXE

它打開Excel 2010中

我必須手動啓動Excel 2010,並在那裏打開文件。 但是,VBA代碼在2013年打開它。

我該如何解決這個問題?

+0

首先,ADO連接在內存中打開。除非您打開[COM](https://msdn.microsoft.com/en-us/library/wss56bz7.aspx?cs-save-lang=1&cs-lang=vb#code-snippet-1)對象,否則您將啓動一個應用程序。 Jet/ACE是一個不會看到用戶程序的.dll數據存儲文件。其次,爲什麼您安裝了兩個Office版本,特別是Excel 2010和2013共享相同的文件類型。現在我可以理解爲了兼容性而使用較舊的Excel 2003。 – Parfait

+0

@par我爲各種客戶開發Office應用程序,有些需要Office 2010,有些需要Office 2013.過去,我遇到過問題,我在Office 2013中開發應用程序,客戶在Office 2010中運行它時遇到問題。通常與參考有關。 –

回答

0

在使用它之後,我決定嘗試Office 2010修復。

啓動「程序和功能」 右鍵單擊Office 2010,更改,修復。 需要重新啓動,現在一切似乎都很好。

我想另一個選項是Office 2013更新之前的系統還原。

相關問題