2012-01-25 9 views
7

से लोड करना जारी रखता है जब मैं अपनी स्प्रेडशीट लोड करता हूं तो मुझे यह त्रुटि मिलती रहती है। यह मुझे इसकी मरम्मत करता है, जो सभी वैधकर्ताओं को स्ट्रिप्स करता है। फ़ाइल को xlsm के रूप में सहेजा गया है।एक्सेल मेरी स्प्रेडशीट को एक त्रुटि

"एक्सेल 'में' अपठनीय सामग्री मिली तो आप इस कार्यपुस्तिका के स्रोत पर विश्वास करते हैं तो आप इस कार्यपुस्तिका की सामग्री को ठीक करने के लिए चाहता हूँ है।, हाँ क्लिक करें"

आप क्लिक करने के लिए हाँ है या यह लोड नहीं होगा । तब मुझे यह त्रुटि मिलती है। "एक्सेल को दूर करने या पढ़ने योग्य सामग्री निकाला गया फ़ीचर मरम्मत करके फ़ाइल खोल कर रहा था: /xl/worksheets/sheet1.xml हिस्से से डेटा सत्यापन"

मैं इस बारे में एक सुराग नहीं है, और यह वास्तव में कष्टप्रद है । अगर किसी के पास कोई सुझाव है, तो मैं बहुत आभारी रहूंगा। धन्यवाद, जेम्स

उत्तर

7

मुझे उस त्रुटि को प्राप्त हुआ है जब मेरे पास डेटा सत्यापन डायलॉगेशन में परिभाषित एक लंबी डेटा सत्यापन सूची थी (हालांकि मैं इसे अभी पुन: पेश नहीं कर सकता)। यदि आपके पास संवाद में लंबी सूची है, तो सूची को एक श्रेणी में ले जाने का प्रयास करें और फिर सीमा का जिक्र करें।

+0

आप सलाह के लिए बहुत बहुत धन्यवाद, आप का वर्णन कर सकते क्या एक लंबी डेटा सत्यापन सूची होगी। मैं वीबीए का उपयोग कर इस समय अपने सभी वैधकर्ताओं को उत्पन्न कर रहा हूं, क्योंकि मैं एक्सेल मेनू पर मानक डेटा सत्यापनकर्ताओं का उपयोग छोड़ देता हूं। – James

+0

यह एक प्रकार की प्रमाणीकरण है जो एक ड्रॉपडाउन सूची बनाता है, जैसे कुछ: ActiveCell.Validation.Add टाइप करें: = xlValidateList, फॉर्मूला 1: = "tester1, tester2, tester3" ... –

+0

ठीक उसी तरह लगता है जो मैं उपयोग कर रहा हूं। मैं इसके बजाय एक रेंज का उपयोग कैसे करूं? क्या आपके पास कुछ उदाहरण कोड है? यह वास्तव में आशाजनक लग रहा है। – James

4

मुझे बस मेरी कार्यपुस्तिका के साथ यही समस्या थी। मैंने यह लिंक सबसे उपयोगी पाया - https://stackoverflow.com/a/21483680/3653412

जबकि स्वीकार किए गए उत्तर ने आखिरकार मेरे लिए इस मुद्दे को हल किया होगा (कार्यपुस्तिका का पुनर्निर्माण), यह काफी समय लेगा। सॉर्टफील्ड को साफ़ करने से आखिरकार मेरे लिए समस्या ठीक हो गई।

Sub clearSortFields() 
Dim ws as worksheet 
ThisWorkbook.Activate 
For Each ws In Worksheets 
    ws.Sort.SortFields.Clear 
Next ws 
End Sub 
0

यह वही है मैं इसे ठीक करने के लिए किया था, मैं क्या मैं डाउन सूची में कार्यपुस्तिका में किसी अन्य पत्रक के एक स्तंभ चाहता था और फिर उस चादर संदर्भित में भर दिया। मैंने चादर का नाम बनाया है, मैं शीटनाम से सूची का संदर्भ देता हूं (केवल अपना शीट नाम यहां डालता हूं) और ए 2: ए 1 संदर्भ पत्र की उन कोशिकाओं का संदर्भ दे रहा है। यदि आपको आवश्यकता हो तो यह सूची को संपादित करना भी आसान बनाता है।

Sub Test() 
 
Worksheets("Sheet1").Activate 
 
With rng.Validation 
 
    .Delete 
 
    .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _ 
 
    xlBetween, Formula1:="=SheetName!$A$2:$A$19" 'Replace SheetName and the range with yours 
 
End With 
 
End Sub

1

मान्यता कोशिकाओं को हटाने और एक बार फिर कार्यपुस्तिका के खुले पर revalidating के लिए कोड चलाकर इस समस्या को हल करती है

Sub RemValidation() 
Dim ARows As Variant 
Dim i As Double 
ARows = Split("C3,C4,C5,C6,C14,C19,C20,C25,F4", ",") 

For i = 0 To UBound(ARows) 
ThisWorkbook.Sheets("WO").Range(ARows(i)).Validation.Delete 
Next 

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