2012-10-24 8 views
14

मैं वर्तमान में Workbooks.Open का उपयोग कर निर्देशिका में निहित फ़ाइलों की बड़ी संख्या को संसाधित करने के लिए उपयोग कर रहा हूं। लेकिन इन फ़ाइलों को खोलने और बंद करने से फाइलें टास्क बार में दिखाई देती हैं और मैं निरंतर झटके से बचना चाहता था।CreateObject ("Excel.Aplication") के बीच अंतर। वर्कबुक। ओपन और बस वर्कबुक। ओपन

मुझे एक सुझाव मिला है कि मैं एक नया उदाहरण बनाने के लिए CreateObject का उपयोग कर सकता हूं क्योंकि यह एक नया एक्सेल उदाहरण खुलता है जो छुपा हुआ है।

  1. प्रदर्शन के संदर्भ में नई कार्यपुस्तिकाओं को खोलने के दो तरीकों के बीच कोई और अंतर है?

  2. इसके अलावा, मैं सिर्फ एक्सेल का एक उदाहरण का उपयोग बनाया CreateObject का उपयोग करके सभी कार्यपुस्तिकाएं खोलने के लिए चाहिए या मैं प्रत्येक कार्यपुस्तिका मैं कार्रवाई करने के लिए है (जो स्मृति और कम की बहुत की बर्बादी की तरह लगता है के लिए एक उदाहरण बनाने के लिए की जरूरत है गति)?

उत्तर

16

Workbooks.Open वर्तमान एमएस एक्सेल उदाहरण का उपयोग करता है और CreateObject(“Excel.Application”) एक नया एमएस एक्सेल उदाहरण पैदा करता है। आप CreateObjecthere पर पढ़ सकते हैं।

एक नया उदाहरण बनाने के बाद बस Workbooks.Open जारी करने से यह सुनिश्चित नहीं होगा कि कार्यपुस्तिकाएं नए उदाहरण में खुलती हैं। आपको इसके साथ बांधना होगा। उदाहरण के लिए

Dim oXLApp As Object, wb As Object 

Set oXLApp = CreateObject("Excel.Application") 

'~~> Hide Excel 
oXLApp.Visible = False 

'~~> Open files 
Set wb = oXLApp.Workbooks.Open("C:\Sample.xls") 
अपने अन्य प्रश्न

इसके अलावा के बारे में

, मैं सिर्फ एक्सेल का एक उदाहरण CreateObject का उपयोग करके सभी कार्यपुस्तिकाएं खोलने के लिए बनाया गया है या मैं प्रत्येक कार्यपुस्तिका मैं करने के लिए है के लिए एक उदाहरण बनाने के लिए की जरूरत है का उपयोग करना चाहिए प्रक्रिया

आपको कई उदाहरणों की आवश्यकता नहीं है। आप एक उदाहरण के साथ काम कर सकते हैं। उदाहरण के लिए

Dim oXLApp As Object, wb As Object 

Set oXLApp = CreateObject("Excel.Application") 

'~~> Hide Excel 
oXLApp.Visible = False 

'~~> Open files 
Set wb = oXLApp.Workbooks.Open("C:\Sample1.xls") 

' 
'~~> Do some Stuff 
' 

wb.Close (False) 

'~~> Open files 
Set wb = oXLApp.Workbooks.Open("C:\Sample2.xls") 
' 
'~~> Do some Stuff 
' 

wb.Close (False) 

' 
'~~> And So on 
' 
+0

@ सिद्धार्थ, उत्कृष्ट सिद्धार्थ और धन्यवाद। –

6

देर बाध्यकारी प्रारंभिक बाध्यकारी से थोड़ा धीमा है, लेकिन आप अंतर भी नहीं देख सकते हैं। हां, आप केवल सभी कार्यपुस्तिकाओं के लिए एक उदाहरण का उपयोग कर सकते हैं। ध्यान दें कि यह:

Dim xl As New Excel.Application 

xl.Workbooks.Open "z:\docs\test.xlsm" 

नहीं दिखाई देंगे जब तक कि आप कहते हैं:

xl.Visible = True 

अपने त्रुटि जाल में किसी भी आवृत्तियां बंद सुनिश्चित करें।

संबंधित मुद्दे