Đóng workbooks có điều kiện

Liên hệ QC

thaibinh_excel

Thành viên hoạt động
Tham gia
18/10/07
Bài viết
127
Được thích
29
Nghề nghiệp
Bán Hàng
Chào các bác,

Mình có 05 workbook đang mở : A, B, C, D , E. Trong đó workbook A, B, C, D có liên quan đến nhau và A là workbook chính. Mình muốn viết 1 code cho workbook A để khi bấm vào 01 nút, cả 4 workbooks này sẽ tự động save và thoát ra, còn workbook E vẫn giữ lại. Mình đã thử với Application. Quit và Auto_Close nhưng chưa được. Nhờ các bác chỉ giúp 1 đoạn code cho việc này.

Cám ơn các bác rất nhiều
Best Regards,
TB
 
Chào các bác,

Mình có 05 workbook đang mở : A, B, C, D , E. Trong đó workbook A, B, C, D có liên quan đến nhau và A là workbook chính. Mình muốn viết 1 code cho workbook A để khi bấm vào 01 nút, cả 4 workbooks này sẽ tự động save và thoát ra, còn workbook E vẫn giữ lại. Mình đã thử với Application. Quit và Auto_Close nhưng chưa được. Nhờ các bác chỉ giúp 1 đoạn code cho việc này.

Cám ơn các bác rất nhiều
Best Regards,
TB

Đây là Code đặt tại File A

PHP:
Sub CloseFile()
    Dim MyFile As String ' "E.xls"
    Dim WB As Workbook
    MyFile = "E.xls"
    For Each WB In Application.Workbooks
        If WB.Name <> MyFile And WB.Name <> ThisWorkbook.Name Then WB.Close (False)
    Next
    ThisWorkbook.Close (False)
    Set WB = Nothing
End Sub

Thân!
 
Upvote 0
Đây là Code đặt tại File A

PHP:
Sub CloseFile()
    Dim MyFile As String ' "E.xls"
    Dim WB As Workbook
    MyFile = "E.xls"
    For Each WB In Application.Workbooks
        If WB.Name <> MyFile And WB.Name <> ThisWorkbook.Name Then WB.Close (False)
    Next
    ThisWorkbook.Close (False)
    Set WB = Nothing
End Sub
Thân!

Ah, cám ơn Bác Okebab, nhưng bác có thể chỉ giúp mình theo hướng này được không ạ ?
Mình biết chính xác tên của các workbook liên quan đến workbook A như B, C, D. Nhưng có thể có workbook E, F, G, H bất kỳ nào đó được mở lên mà mình không thể xác định tên được. Vậy mình đi theo hướng xác định ngược lại như thế này được không a ?
Sub CloseFile()
Dim FileB As String ' "B.xls"
Dim FileC As String ' "C.xls"
Dim FileD As String ' "D.xls"
Dim WB As Workbook
FileB = "B.xls"
FileC = "C.xls"
FileD = "D.xls"
For Each WB In Application.Workbooks
If WB.Name = FileB And WB.Name = FileC And WB.Name = FileD And WB.Name = ThisWorkbook.Name Then WB.Close (False)
Next
ThisWorkbook.Close (False)
Set WB = Nothing
End Sub

Nhưng hình như mình chưa có lệnh để nó lưu trước khi đóng phải không bác ?

Nhờ bác xem giúp.
Thanks and Best Regards,
TB
 
Upvote 0
Ah, cám ơn Bác Okebab, nhưng bác có thể chỉ giúp mình theo hướng này được không ạ ?
Mình biết chính xác tên của các workbook liên quan đến workbook A như B, C, D. Nhưng có thể có workbook E, F, G, H bất kỳ nào đó được mở lên mà mình không thể xác định tên được. Vậy mình đi theo hướng xác định ngược lại như thế này được không a ?
Sub CloseFile()
Dim FileB As String ' "B.xls"
Dim FileC As String ' "C.xls"
Dim FileD As String ' "D.xls"
Dim WB As Workbook
FileB = "B.xls"
FileC = "C.xls"
FileD = "D.xls"
For Each WB In Application.Workbooks
If WB.Name = FileB And WB.Name = FileC And WB.Name = FileD And WB.Name = ThisWorkbook.Name Then WB.Close (False)
Next
ThisWorkbook.Close (False)
Set WB = Nothing
End Sub

Nhưng hình như mình chưa có lệnh để nó lưu trước khi đóng phải không bác ?

Nhờ bác xem giúp.
Thanks and Best Regards,
TB

Nếu đơn giản là thế thì không cần phải phức tạp vậy đâu


PHP:
Sub CloseFile()
    On Error Resume Next
    Workbooks("B.xls").Close (True)
    Workbooks("C.xls").Close (True)
    Workbooks("D.xls").Close (True)
    Workbooks("A.xls").Close (True)
End Sub

Thân!
 
Upvote 0
Bạn muốn đóng cái file nào mà không cần lưu thì thay true=false
 
Upvote 0
Đơn giản nhỉ ? :-) . Cám ơn bác Okebab và bác Yêu Đời.
 
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom