[英]Close another workbook upon closing the workbook
我有一個代碼,當我打開模板工作簿(template.xlsm) (在Workbook_Open事件上觸發)時,它會打開另一個工作簿(source.xlsx ) 。
編碼:
Private Sub Workbook_Open()
Application.Screenupdating= False
Set w = workbooks
w.open filename:="link", Updatelinks:=true , readonly:=true
activewindow.visible=false
thisworkbook.activate
application.screenupdating=True
end sub
但是,我希望源工作簿在打開時僅在后台運行,而在關閉模板文件時將其關閉。
Private sub workbook_aftersave()
Workbook("source.xlsx").Close SaveChanges:=False
End Sub
您要使用Workbooks
集合( Workbooks("source.xlsx")
),而不是Workbook
對象( Workbook("source.xlsx")
,這會引發錯誤)。 另外,您可以嘗試使用Workbook_BeforeClose
事件,而不是嘗試在Workbook_AfterSave
事件上關閉它:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
On Error Resume Next 'In case the Workbook is already closed
Workbooks("source.xlsx").Close SaveChanges:=False
End Sub
{EDIT} 而且,因為我可以,所以這也是您的Workbook_Open
代碼的整理版本:
Private Sub Workbook_Open()
Application.ScreenUpdating = False
Dim wsSource As Workbook
Set wsSource = Workbooks.Open(Filename:="SomeDirectory\source.xlsx", UpdateLinks:=True, ReadOnly:=True) 'Change the filename to where your "source.xlsx" is stored
DoEvents 'Wait for it to finish opening
wsSource.Windows(1).Visible = False
ThisWorkbook.Activate
Application.ScreenUpdating = True
End Sub
嘗試使用
Application.Visible = False
將其放在要隱藏的工作簿上的Workbook_Open代碼中,然后使用True將其重新關閉。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.