2010-10-03 51 views
1

我的問題是關於Excel加載項和VBA代碼。Excel 2007影子副本?

這種情況:

有2個Excel文件;一個只是一個普通的Excel工作表,一個是存儲在網絡驅動器上的帶有VBA代碼的.xla插件。

在正常的Excel工作表中是對.xla文件的引用,以便工作表可以使用.xla文件中的宏。到目前爲止,這工作正常,但有時似乎有一個錯誤:它看起來像表單使用某種「影子副本」的.xla文件。 當我在VBA編輯器中更改代碼或者設置了斷點時,會發生該錯誤,運行宏時兩者都會被忽略。感覺就像是.xla文件的舊副本,它是不可見的,它以某種方式存儲在普通的Excel文件中,所以運行的代碼不是我在編輯器中看到的宏。

我想,因爲我安裝微軟Office 2007

發生這個問題,我希望有人能幫助我。

回答

0

如果Excel在本地存儲加載項的版本,我不會感到驚訝。在對xla進行更改時,我一定會重新添加您的加載項以確保安裝最新版本。

編輯:

你可以嘗試做這樣的事情:

Private Sub Workbook_Open() 

    Application.DisplayAlerts = False 

    AddIns("Your Library Name").Installed = False 'To remove current link 
    AddIns.Add Filename = "\\Your Server Path\Excel_Library3.xla" 
    AddIns("Your Library Name").Installed = True 

    Application.DisplayAlerts = True 

End Sub 

這將確保當他們打開Excel工作表的最新插件可以從網絡位置加載。

+0

這可能是可能的:

的代碼,通過我從修改一個文件夾中的文件進行迭代。但是,爲什麼Excel有時會這樣做,有時候不會呢?我如何防止它做到這一點?約有50人正在使用引用的xla文件。我不能讓他們每次都重新添加加載項。有些人甚至不知道插件是什麼:) – Johannes 2010-10-03 14:04:20

0

而不是引用文件,我加載插件的代碼。我的用途是將我的插件存儲在我的Dropbox文件夾中,但網絡的工作原理是一樣的。

Sub LoadAddins() 

Dim wbOpen As Workbook 
Dim wbNew As Workbook 
Dim strAddinsPath As String 
Dim strExtension As String 

On Error Resume Next 

strAddinsPath = "\\Server\Excel\AddIns\" 'Your server path here 

ChDir strAddinsPath 

strExtension = Dir("*.xlam") 

     Do While strExtension <> "" 
      Set wbOpen = Workbooks.Open(strAddinsPath & strExtension) 
      strExtension = Dir 
     Loop 

On Error GoTo 0 

End Sub 

你需要將其添加爲受信任的位置,但讓我把任何插件的,我的文件夾中的工作,並讓他們自動加載。 http://www.ozgrid.com/VBA/2007-filesearch-alternative.htm