簡體   English   中英

關閉工作簿后關閉另一個工作簿

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM