Excel 2007 теневая копия? - PullRequest
       19

Excel 2007 теневая копия?

1 голос
/ 03 октября 2010

Мой вопрос касается надстроек Excel и кода VBA.

Вот такая ситуация:

Есть 2 файла Excel;один - просто обычный лист Excel, другой - надстройка .xla с кодом VBA, который хранится на сетевом диске.

В обычном листе Excel есть ссылка на файл .xla, так что листможно использовать макросы из файла .xla.Пока это работает нормально, но иногда кажется, что есть ошибка: похоже, лист использует какую-то «теневую копию» файла .xla.Ошибка возникает, когда я меняю код в редакторе VBA или устанавливаю точку останова, оба игнорируются при запуске макроса.Такое ощущение, что есть старая копия файла .xla, которая невидима и которая каким-то образом хранится в обычном файле Excel, поэтому выполняющийся код - это не макрос, который я вижу в редакторе.

Я думаю,эта проблема возникла с тех пор, как я установил MS Office 2007.

Я надеюсь, что кто-то может мне помочь.

Ответы [ 2 ]

0 голосов
/ 23 ноября 2011

Вместо того, чтобы ссылаться на файл, я загружаю дополнения через код.Я использую мои надстройки в папке 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

0 голосов
/ 03 октября 2010

Я не удивлюсь, если Excel хранит версию вашей надстройки локально. При внесении изменений в xla я обязательно добавлю вашу надстройку, чтобы убедиться, что установлена ​​последняя версия.

EDIT:

Вы можете попробовать сделать что-то вроде этого:

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.

...