2012-01-19 19 views
11

मैं किसी भी तरह Excel 2010 के क्रैश होने का एक नया कार्यपुस्तिका में आईडीई में निम्न दर्ज करके सक्षम हूँ:Excel 2010 ReDim बचाना दुर्घटना

private sub foo 
    redim v(,1 to 3) 

ठीक है, आप टाइप करने के लिए की संभावना नहीं कर रहे हैं ... लेकिन यहाँ क्या वास्तव में क्या हुआ है:

private sub foo 
    dim v(1 to N, 1 to M) 
    ... 
    M = New_Value 
    redim preserve v(,1 to M) ' seemed reasonable ... then CRASH !!! 

ऐसा नहीं है कि VBA आवश्यकता है कि आप एक 2 डी के 1 परम स्पष्ट ReDim की रक्षा हो (कि आप 1 आयाम को बदलने के लिए अनुमति नहीं कर रहे हैं) मज़ेदार है। लेकिन यह मजाकिया नहीं है जब एक सरल वाक्यविन्यास त्रुटि के लिए जुर्माना एक कठिन दुर्घटना है। यह एक उचित स्वच्छ वातावरण (आईडीई में खाली प्रोजेक्ट फलक शुरू करने के साथ कोई स्थापित एडिन नहीं है) के साथ एक आईटी विभाग है, और "रेडिम वी (1 से एम)" ने मेरे पड़ोसी की मशीन को भी दुर्घटनाग्रस्त कर दिया - तो यह सिर्फ मुझे नहीं है।

मुझे आश्चर्य है कि यह व्यवहार दूसरों के साथ होता है, और अगर मैं किसी और को बचाता हूं तो मैं इसे पोस्ट कर रहा हूं, जब तक मैंने अपनी कार्यपुस्तिकाओं को पुनर्निर्माण नहीं किया, जब तक मैंने बग को पिन नहीं किया।

+0

मजेदार है यही कारण है कि। मैंने आपके नमूना # 2 को एक नए एक्सेल मॉड्यूल में चिपकाया और पूरी चीज अलग हो गई! शायद अगर हममें से पर्याप्त ने इसे भेजा है, तो कोई इसे ठीक करेगा :) – Fionnuala

+0

हां यह मेरे लिए भी एक दुर्घटना का कारण बन गया। एक्सेल 2010. – Reafidy

+0

मेरा भी दुर्घटनाग्रस्त हो गया। एक्सेल 2010 –

उत्तर

2

दुर्घटना पहले आयाम, या शायद बेहतर phrased, nLastDimension - 1 पर एक चूक, और निम्न आयाम में TO कीवर्ड का उपयोग दोनों से चूक जाती है।

Option Explicit 'Just wanted to make the Interpreter more picky 

Private Sub test() 
    'Go through some basic declaration 
    Dim v() As Variant 
    Dim M As Integer 
    Dim New_Value As Integer 

    ReDim v(2, 2) 'No Problem 
    ReDim Preserve v(1, 1 To M) ' No Problem 
    ReDim Preserve v(1 To M) ' No Problem 
    ReDim Preserve v(,400) 'Compile Error 

    'Crash on this 
    'ReDim Preserve v(,1 To M) 'BOOM!!! 
    'and this: 
    'ReDim Preserve v(,1 To 2) 'BOOM!!! 
    'and this: 
    'ReDim Preserve v(1 to 5,,1 To 2) 'BOOM!!! 


End Sub 

नीचे लाइन, कोड में से कोई भी 'बूम' लाइनों से पहले पी गिरावट तकिया होगा:

मैं अपने छोटा सा नमूना लिया और दुर्घटना नहीं की कोशिश की। एक संकलक त्रुटि मुझे समझ में होगा, लेकिन VBA

ReDim myVar(,x TO y) 

मैं कार्यालय 2007.


किक और बिताए के लिए प्रयोग किया जाता है संभाल करने के लिए कोडित नहीं है, मैं भी निम्नलिखित स्थानों में इस कोड की कोशिश की:

  1. पहुँच '97 (क्रैश)
  2. विजुअल बेसिक 5 आईडीई (क्रैश)
  3. बुनियादी वातावरण ओपनऑफिस कैल्क के लिए ment। (नीचे देखें)

यह दुर्घटना नहीं था और मैं निम्नलिखित दो संकलक त्रुटियों प्राप्त किया: इस पहली: enter image description here

फिर इस:

enter image description here

+0

वीबीए आपकी त्रुटियों पर कब उछाल आया? Tpascale की पोस्ट में वह कहता है: "... जब तक मैंने बग को पिन नहीं किया, तब तक मैंने अपनी कार्यपुस्तिकाओं का पुनर्निर्माण बर्बाद कर दिया।" एक्सेल 2003 के साथ, यह बूम करता है (1) जब मैं दोषपूर्ण रेखा में टाइप करता हूं या (2) जब मैं पहले से सही रेखा से पहले आयाम को हटाने के बाद ऊपर, नीचे या माउस के साथ लाइन को स्थानांतरित करता हूं तो मैं वापस दबाता हूं। यहां तक ​​कि tpascale की सहायता के बिना भी मुझे पता चलेगा कि मैंने Excel को क्रैश करने के लिए क्या किया था, अगर पहले प्रयास पर नहीं तो मैंने अपने परिवर्तनों को फिर से दर्ज करने का प्रयास किया। क्या एक्सेल 2007 और 2010 अलग हैं? –

+0

@ टोनीडैलिमोर मेरे लिए यह सभी क्रैश परिदृश्यों के लिए 1 और 2 दोनों पर होता है। मैंने आयात पर क्रैश कोड और ऑफिस क्रैश आयात करने का भी प्रयास किया। मुझे tpascale के परिदृश्य के बारे में निश्चित नहीं है जिसके कारण इस तरह के नाटकीय नुकसान हुआ। – ray

+1

स्पष्टीकरण के लिए ... समय की कमी थी, काम नहीं। मैं अक्सर क्रैश पर काम न खोने के लिए पर्याप्त बचत करता हूं, लेकिन पुराने दिनों में डब्लूबी दुर्घटनाएं एक आम घटना थीं और मुझे सिखाया गया उपाय सभी आईडीई मॉड्यूल निर्यात करना था और सेल प्रतियों का उपयोग करके स्क्रैच से डब्ल्यूबी को फिर से बनाना था, लेकिन शीट प्रतियां नहीं। मुझे नहीं पता कि इस अभ्यास को 2010 में गिराया जा सकता है, लेकिन कुछ दुर्घटनाओं के बाद मैंने एक उपाय के रूप में कोशिश की - समय की बर्बादी। – tpascale

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