मुझे अब इस समस्या को लंबे समय से मिला है और मैंने आलस्य से इसे अनदेखा कर दिया है, हालांकि मुझे अब समाधान ढूंढना होगा। मेरे पास एक स्क्रिप्ट है जो बड़ी संख्या में एक्सेल दस्तावेज़ों को रीफ्रेश करने में स्वचालित होती है। यह अच्छी तरह से और बेवकूफ काम करता है, हालांकि, यह विफल रहता है अगर मेरे पास नेटवर्क शेयर पर संग्रहीत कार्यपुस्तिकाओं पर झूठी दृश्यमान संपत्ति सेट है।
दोहराने के लिए, स्थानीय फाइलों पर झूठी कामों के लिए दृश्यमान संपत्ति सेट के साथ रीफ्रेश करना, लेकिन किसी स्थान पर सहेजी गई कोई भी कार्यपुस्तिका त्रुटि के साथ विफल हो जाती है "कॉल कैली द्वारा अस्वीकार कर दिया गया था"। सभी रीफ्रेश दृश्यमान संपत्ति सेट के साथ ठीक काम करते हैं।
- एक्सेल वस्तु बनाने और दृश्य संपत्ति
- की स्थापना DisplayAlerts से पहले दिखाई स्थापना के बीच प्रारंभ-स्लीप 30 जोड़ना:
#Create Excel COM object and set it up for use. $excel = new-object -comobject Excel.Application; $excel.DisplayAlerts = $false; #If this is set to false, saving the file on a network share will fail. Reason : Unknown. $excel.Visible = $true; #Open workbook which should be refreshed. $excelworkbook = $excel.workbooks.Open($workbook); #Refresh WB $excelworkbook.RefreshAll(); #Save $excelworkbook.Save(); #Quit Excel $excel.Quit(); #Destroy COM object. (VERY IMPORTANT!!!!!) [System.Runtime.Interopservices.Marshal]::ReleaseComObject($excel);
मैं निम्नलिखित की कोशिश की है:
यहाँ मेरी कोड है
- काम करने के लिए वास्तव में कड़ी मेहनत करना
कोई विचार?
आप कहते हैं कि यह बड़ी संख्या में फाइलों के लिए करता है, क्या आप प्रत्येक फ़ाइल के लिए एक नया एक्सेल कॉम ऑब्जेक्ट बनाते हैं? या क्या आप एक्सेल को खोलने और कॉम ऑब्जेक्ट को रिलीज़ करने से पहले एक्सेल/रीफ्रेश/बंद फ़ाइल चक्र वाली फाइलों के माध्यम से एक्सेल खोलते हैं? – TheMadTechnician
मैं इसे बनाता हूं, अपना लूप करता हूं, फिर इसे बंद करता हूं। मैंने जो उदाहरण दिया वह लूप के बिना संघनित है। पूरी लिपि बहुत लंबी है। – Ethan
क्या एक्सेल को नेटवर्क स्थान तक पहुंचने के लिए प्रमाण-पत्र की आवश्यकता है? क्या कोई दृश्यमान प्रॉम्प्ट दिखाई देता है जब 'दृश्यमान' सत्य होता है? – acelent