2010-09-02 13 views
29

का उपयोग कर एक्सेल एप्लिकेशन बंद करना मैंने सफलता के बिना निम्नलिखित का उपयोग किया है। सक्रिय कार्यपुस्तिका बंद हो जाती है, वास्तव में, लेकिन एक्सेल खिड़की खुली रहती है।वीबीए

Application.ActiveWindow.Close SaveChanges:=False 
ActiveWorkbook.Close SaveChanges:=False 

कौन सा आदेश है कि आवेदन समाप्त हो जाता है है?

संपादित

थोड़ा और कहते हैं कि करने के लिए: कार्यपुस्तिका खोलें घटना में मैं कोई मैक्रो चलाते हैं। जब मैक्रो खत्म होता है तो मैं एप्लिकेशन को समाप्त करना चाहता हूं। मैंने सफलता के बिना भी कोशिश की।

Private Sub Workbook_Open() 
    Macro_MyJob 
    Application.Quit 
End Sub 

मुझे यह एप्लिकेशन कहां रखना चाहिए। Quit कमांड?

उत्तर

44

मुझे लगता है कि आपकी समस्या यह है कि यह उस दस्तावेज़ को बंद कर रहा है जो एप्लिकेशन को छोड़ने के लिए आदेश भेजने से पहले मैक्रो को कॉल करता है।

उस मामले में आपका समाधान कार्यपुस्तिका को बंद करने के लिए कोई आदेश नहीं भेजना है। इसके बजाए, आप कार्यपुस्तिका की "सहेजी गई" स्थिति को सत्य पर सेट कर सकते हैं, जो किसी भी सहेजी गई पुस्तक को बंद करने के बारे में किसी भी संदेश को बाधित करेगा। नोट: यह कार्यपुस्तिका को सहेजता नहीं है; यह सिर्फ इसे सहेजने जैसा दिखता है।

ThisWorkbook.Saved = True 

और फिर, सही होने के बाद

Application.Quit 
4
Application.Quit 

चाल चलाना चाहिए।

+1

मुझे इसे कहां रखना चाहिए? – Brani

6

सहेजें शीघ्र संदेश से बचने के लिए आप अपने काम को सहेजने के बाद उन पंक्तियों

Application.DisplayAlerts = False 
ThisWorkbook.Save 
Application.DisplayAlerts = True 

डालने के लिए है, तो आप इस का उपयोग करने की आवश्यकता है एक्सेल एप्लिकेशन

Application.Quit 
01 छोड़ने के लिए लाइन

केवल उन पंक्तियों को निजी उप वर्कबुक_ ओपन() में न रखें जब तक कि आपको सही स्थिति जांच न हो, अन्यथा आप अपनी एक्सेल फ़ाइल खराब कर सकते हैं।

सुरक्षा उद्देश्य के लिए, कृपया इसे चलाने के लिए एक मॉड्यूल बनाएं। निम्नलिखित कोड हैं जो मैंने डाले हैं:

Sub testSave() 
Application.DisplayAlerts = False 
ThisWorkbook.Save 
Application.DisplayAlerts = True 
Application.Quit 
End Sub 

आशा है कि इससे आपको समस्या हल करने में मदद मिलेगी।

+0

हां, मॉड्यूल के भीतर कोड बेहतर काम करता है। –

1

मैं के रूप में आप नीचे देख सकते काम करने के लिए लगता है कि एक निश्चित अनुक्रम की कोशिश की:

ThisWorkbook.Saved = True 
Application.Quit 
Application.ActiveWindow.Close SaveChanges:=False 
ActiveWorkbook.Close SaveChanges:=False 
-2
Sub button2_click() 
' 
' Button2_Click Macro 
' 
' Keyboard Shortcut: Ctrl+Shift+Q 
' 
    ActiveSheet.Shapes("Button 2").Select 
    Selection.Characters.Text = "Logout" 
    ActiveSheet.Shapes("Button 2").Select 
    Selection.OnAction = "Button2_Click" 
    ActiveWorkbook.Saved = True 
    ActiveWorkbook.Save 
    Application.Quit 
End Sub 
2
Sub TestSave() 
Application.Quit 
ThisWorkBook.Close SaveChanges = False 
End Sub 

यह मेरे लिए काम करने लगता है, भले ही दिखेगा सहेजने से पहले एप्लिकेशन से बाहर निकलने रहा हूँ, लेकिन यह बचाता है ...

+0

यह मेरे लिए भी काम किया। हालांकि, आप बराबर चिह्न से पहले एक कोलन खो रहे हैं, इस तरह: SaveChanges: = गलत – pylund