Application.Quit trước khi mở file Excel

Liên hệ QC

Duong gia

Thành viên thường trực
Tham gia
15/1/07
Bài viết
352
Được thích
118
Bạn nào biết ứng dụng Application.Quit trước khi mở file Excel không share cho mình với. Ý của mình là khi mở 1 file Excel giả sử tên "ABC" nó tự động thực thi lệnh đóng tất cà các ứng dụng Excel lại trước open. Thanks
 
Lần chỉnh sửa cuối:
Như thế này, không biết phải giống ý của bạn không:

Trong cửa sổ VBE nhấp đôi chuột phải vào ThisWorkbook và đặt đoạn code này:


Private Sub Workbook_Open()
On Error Resume Next
Application.Visible = False ' Đóng giao diện của excel lại
... Show một form nào đó
End Sub


Bạn có thể tham khảo cách làm này trong file Quản lý phụ tùng (mình đã up trên diễn đàn này).
 
Lần chỉnh sửa cuối:
Upvote 0
Bạn tham khảo thêm cách dưới đây nhé!

Mã:
Private Sub Workbook_Open()
Dim wb As Workbook

    For Each wb In Application.Workbooks
        If wb.Name <> ThisWorkbook.Name Then
            wb.Close False [COLOR="Green"]' True nếu muốn save[/COLOR]
        End If
    Next

End Sub
 
Upvote 0
Thanks ban TuanVNUNI, nhưng ý mình là trước khi open file thì phải thoát các ứng dụng của Excel tức là thoát Project-VBAProject của các file Excel đã mở trước đó. Thanks
 
Lần chỉnh sửa cuối:
Upvote 0
Duong gia đã viết:
Thanks ban TuanVNUNI, nhưng ý mình là trước khi open file thì phải thoát các ứng dụng của Excel tức là thoát Project-VBAProject của các file Excel đã mở trước đó.
Thanks

Không hiểu ý bác!! khi workbook closed thì Vbaproject của workbook đó cũng đã được đóng lại.

Bác nói rõ hơn tí nữa nha.
 
Upvote 0
Addin RunOpen

Duong gia đã viết:
Thanks ban TuanVNUNI, nhưng ý mình là trước khi open file thì phải thoát các ứng dụng của Excel tức là thoát Project-VBAProject của các file Excel đã mở trước đó.
Thanks

Nếu làm vậy thì bạn phải tạo một Addin riêng có nút RunOpen. Trong Addin có 3 thủ tục như dưới đây:
Mã:
'----------------------------------------
Sub RunOpen()
On Error GoTo RaiseErr
Dim fileToOpen
    
    CloseAll
    
    fileToOpen = Application. _
    GetOpenFilename("Excel files (*.xls),*.xls,All files (*.*),*.*")
    
    If fileToOpen <> False Then
        Application.Workbooks.Open fileToOpen
    End If
    
    Exit Sub
    
RaiseErr:
    MsgBox Err.Description, vbCritical, "Error: " & Err.Number
End Sub
'----------------------------------------
Private Sub CloseAll()
Dim wb As Workbook
Dim bSave As Boolean
    bSave = (MsgBox("Do you want to save all workbooks?", vbExclamation + vbYesNo, "Close all") = vbYes)
    For Each wb In Application.Workbooks
        wb.Close bSave
    Next

End Sub
'----------------------------------------
Sub Auto_Close()
    Application.CommandBars("My Addin").Delete
End Sub
'----------------------------------------

Tôi gửi file đính kèm bạn sửa thêm cho vừa ý mình.
 

File đính kèm

Upvote 0
Cám ơn các Bác, đúng là các Bác vẫn chưa hiểu ý của mình, xin nói rõ như sau: 1/ Ta đang mở 1 file Excel tên A và vào bên trong Project-VBAProject để soạn VBA Excel. 2/ Ta mở tiếp 1 file Excel tên B , yêu cầu : Trước khi B open thì phải đóng cửa sổ soạn thảo VBA Excel lại, còn tập tin A có đóng lại hay không cũng được. Mục đích để bảo mật VBA code của tập tin B. +-+-+-+
 
Lần chỉnh sửa cuối:
Upvote 0
Web KT

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

Back
Top Bottom