2013-02-10 9 views
5
के साथ SharePoint के लिए

मैं एक परियोजना जो अनिवार्य रूप से इस तरह दिखता है पर काम कर रहा हूँ:एक्सेल क्रैश होने का है जब एक असंशोधित Excel वर्कबुक में जाँच VBA

if workbooks.canCheckOut(filename) = true then  
    workbooks.CheckOut(filename) 
    set workbookVariable = workboooks.Open(filename) 
else  
    ' Pesudocode: Display error message 
    '    Quit 
end if 

' Pseudocode: Do some stuff with workbookVariable.  
If workbookVariable.saved = false then  
    workbookVariable.save 
end if 

If workbookVariable.canCheckIn then  
    workbookVariable.checkIn 
    Set workbookVariable = Nothing 
else  
    msgbox "Error message goes here", vbCritical 
end if  
' Pseudocode: quit 

(संपादित करें: मैं था "अगर workbookVariable.Saved = सच"; जो गलत था। फ़ाइल को सहेजने में कोई बिंदु नहीं है अगर यह पहले से ही सहेजा गया है ... तो अब यह वास्तव में अपडेट किया गया है कि मेरे पास वास्तव में क्या है।)

यदि कार्यपुस्तिका संशोधित होती है और सहेजी जाती है, तो सब ठीक हो जाता है। यह बचाता है, शेयरपॉइंट में वापस चेक किया जाता है, और प्रोग्राम सामान्य रूप से समाप्त होता है।

हालांकि, अगर कार्यपुस्तिका संशोधित नहीं होती है, जब यह प्रोग्राम के हिस्से में चेक पर वापस जाती है, तो एक्सेल क्रैश हो जाती है, और मुझे एक त्रुटि संदेश मिलता है: "स्वचालन त्रुटि"।

मैं भी कोई भाग्य के साथ checkIn आदेश के बाद एक प्रतीक्षा आदेश में डालने की कोशिश की ...

यहाँ क्या चल रहा है? क्या कोई मुझे सही दिशा दिखा सकता है?

+1

शायद हर बार जब आप यह देखने के लिए सहेजने का प्रयास कर सकते हैं कि समस्या बनी रहती है या नहीं। हालांकि आप फ़ाइल में कोई संशोधन नहीं कर सकते हैं। – bonCodigo

+1

मैंने वास्तव में परीक्षण किया था, और यह समस्या हल हो गई; हालांकि यह वास्तव में जिस तरह से जाने का इरादा नहीं है। –

+0

सच है, यह केवल एक * कवर-अप * है, वास्तविक समस्या को हल नहीं कर रहा है;) – bonCodigo

उत्तर

0

जब कोई परिवर्तन नहीं किया गया है (workbookVariable.saved = true) workbookVariable.CheckIn(False) का उपयोग करें। आप CheckIn एक संशोधन नहीं करना चाहते हैं जो मूल के समान ही है। कम से कम अंतरिक्ष का अपशिष्ट। यह आपके "चेकऑट" को त्यागना चाहिए। MSDN देखें।

this page के लिए धन्यवाद, यह स्पष्ट करने के लिए कि क्या स्पष्ट होना चाहिए।

जिज्ञासा का अंतिम बिंदु: जब आप इसमें बदलाव नहीं कर सकते हैं तो कार्यपुस्तिका की जांच क्यों करें?

+0

जैसा कि यह निकला, मैं इसे जांचने के लिए समाप्त नहीं हुआ, इसके बजाय, मैंने फ़ाइल पर लॉक की जांच की। इसे जांचने का मेरा मुख्य कारण यह था कि मैक्रो _might_ ने बदलाव किए हैं, लेकिन जब तक यह दौड़ नहीं जाता है, हम नहीं जानते थे कि यह होगा या नहीं। –

+0

संयोग से, मैंने वर्कबुक की कोशिश की। वैरिएबल। चेक इन फाल्स (कोष्ठक के बिना) हालांकि यह भी दुर्घटनाग्रस्त हो गया। –

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