假设您有 2 个工作簿名称“PrivateWorkbook”和“PublicWorkbook”
PublicWorkbook 可供我们公司中的每个人使用。
PrivateWorkbook 仅供经理访问。
有从 PublicWorkbook 到 PrivateWorkBook 的外部链接。
当 PrivateWorkbook 更新时,PublicWorkbook 中的单元格应该反映这些变化。
但是,刷新 PublicWorkbook 链接的唯一方式是经理在编辑 PrivateWorkbook 后打开 Publicworkbook。
如果非经理首先打开PublicWorkbook,则无法刷新链接,因为他没有打开PRivateWorkbook的权限。
当经理编辑 Privateworkbook 时,有没有什么方法可以更新 PublicWorkbook,而不必强迫他们手动打开 publicworkbook?
答案1
使用 VBA 及其工作簿_关闭前在您的私人文件中设置事件,以自动打开、保存和关闭公共文件。当您的经理关闭私人文件时,将触发此事件。让经理通过简单的“是”或“否”提示来确认更新。
请注意UpdateLinks:=True
,该参数会默默更新公共文件中的所有外部链接
示例代码(必须放在 ThisWorkbook 下)
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim wb As Workbook
FilePath = "C:\public.xls"
If MsgBox("Update " & FilePath & " ?", vbYesNo) = 6 Then
Set wb = Workbooks.Open(FilePath, UpdateLinks:=True)
wb.Close SaveChanges:=True
End If
End Sub