2016-04-21 5 views
0

У меня возникла проблема с файлами excel, предоставленными менеджерам. Они скопировали файлы на свои компьютеры, и в этих файлах уже написана строка подключения рабочей книги. Но файлы на нашем сервере были обновлены, мы поместили на них версии, однако люди ленивы загружать их с сервера. Есть ли способ запустить с помощью групповой политики (или любым другим способом) скрипт VBA, который может удалять строки соединения с книгой, если версия файла не соответствует той, которая размещена на сервере? VBA прост, но не знает, как автоматически запускать внешние файлы.Удалите соединение рабочей книги Excel на внешнем документе или запустите VBA на внешний файл

sub deleteConnections() 
For Each cn In ThisWorkbook.Connections 
cn.Delete 
Next cn 
end sub 

ответ

0

Предполагая, что это не невозможно, вы могли бы поставить этот код в

Private Sub Workbook_Open() 

End Sub 

В ThisWorkbook части каждого файла. Он удалит соединение при открытии. Если бы вы добавили некоторый код для сравнения файлов с серверами на сервере, то это будет делать именно то, что вы ищете, хотя не совсем так, как вы просили

+0

Дани, спасибо, но как я могу введите vba, если файл существует на другом компьютере, а майнер не отправляет его мне? Мне нужно сделать это как-то автоматически – orangutangas

+0

Это действительно хороший момент, который я не рассматривал. Если вы можете, вы можете попробовать удалить/переименовать источник данных, чтобы они были вынуждены использовать новые файлы, иначе это может быть хорошим вопросом для системного администратора, они должны быть в состоянии предоставить вам ответ. –

+0

Если я переименовал источник данных на компьютере, excel по-прежнему работает, поскольку мы включили идентификатор входа и пароль в строку подключения рабочей книги excell: /, поэтому единственное, что мы думали, это изменить имя схемы Oracle (строка подключения связана с Oracle), которая мы не можем. Вот почему мы ищем способ сделать это по групповой политике как-то ... – orangutangas