2016-04-21 94 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