2016-04-21 93 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仍然有效,因爲我們將登錄ID和密碼包含到excell工作簿連接字符串中:/因此我們唯一想到的就是更改Oracle模式名稱(連接字符串鏈接到Oracle),它我們不能。這就是爲什麼我們正在尋找一種方法,以某種方式在組策略上做到這一點... – orangutangas