2013-04-01 5 views
9

मुझे आश्चर्य है कि बाहरी लिंक बनाम स्प्रेडशीट खोलने और कोशिकाओं की प्रतिलिपि बनाने (वीबीए का उपयोग करके) का प्रदर्शन करते समय प्रदर्शन लाभ होता है।एक्सेल: बाहरी लिंक का उपयोग प्रदर्शन में सुधार कर सकते हैं?

मैं कल्पना कर सकते हैं कि Excel सिर्फ एक ही फ़ाइल खोलने के लिए है, लेकिन जब मैं निम्नलिखित कोड का उपयोग कर परीक्षण, बाहरी जोड़ने बाहर तेजी से आता है:

Dim t As Double 
Dim rng As Range 

For Each rng In shtId.Range("A1:A5") 
    t = Now 
    ThisWorkbook.Names("rngID").RefersToRange = rng 
    ThisWorkbook.UpdateLink "H:\manualData.xlsx", xlExcelLinks 
    Debug.Print "link: " & Format(Now - t, "######.0000000") 

    t = Now 
    Workbooks.Open "H:\manualData.xlsx", readonly:=True 
    ActiveWorkbook.Close False 
    Debug.Print "open: " & Format(Now - t, "######.0000000") 
Next 


Results: 

link: .0000116 
open: .0000231 
link: .0000116 
open: .0000347 
link: .0000000 
open: .0000347 
link: .0000000 
open: .0000347 
link: .0000000 
open: .0000347 

कार्यपुस्तिका देखने सूत्रों के साथ कोशिकाओं की एक श्रृंखला है एक आईडी फ़ील्ड पर keyed। इन सूत्रों में बाहरी लिंक हैं। इसका परीक्षण करने के लिए, मैं आईडी बदलता हूं और एक अद्यतन को मजबूर करता हूं। फ़ाइल खुले दृष्टिकोण का परीक्षण करने के लिए, मैं बस स्रोत फ़ाइल खोलता हूं और बंद करता हूं।

मैं नेटवर्क पर कम बैंडविड्थ के कारण कोई समस्या होने की प्रक्रिया को तेज करने की तलाश में हूं। मैंने पहले ही विभिन्न विकल्पों की खोज की है और यह समझना चाहेंगे कि यह वैध है या नहीं। मैंने इस विषय पर खोज की और कुछ लोगों का कहना है कि बाहरी लिंक प्रदर्शन समस्याओं का कारण बन सकते हैं जबकि कुछ अन्यथा कहते हैं। मैं बाहरी लिंक के पीछे तंत्र का बेहतर विचार प्राप्त करना चाहता हूं ताकि मैं समझ सकूं कि लागू होने पर क्या उम्मीद करनी है।

कोई विचार?

+0

अच्छा सवाल। मैं बाहरी लिंक के साथ ज्यादा काम नहीं करता, लेकिन यह मुझे समझ में आता है कि केवल बाहरी लिंक अपडेट करना (यानी, सीधे इसकी सामग्री तक पहुंचना) फ़ाइल खोलने, इसकी सामग्री तक पहुंचने और फ़ाइल को बंद करने से तेज़ होगा। लेकिन मुझे कुछ मामलों को भी याद है जहां लिंक की अद्यतन तेजी से होती है जब दोनों कार्यपुस्तिकाएं खुली होती हैं। तो, अच्छा सवाल, आपके लिए +1, यह देखने के लिए उत्सुक है कि दूसरे इसके बारे में क्या कहते हैं। –

+0

फिर से मापें (1) स्क्रीन अपडेटिंग सेट झूठी; और (2) मापा समय> 2 या 3 सेकंड ड्राइव करने के लिए पर्याप्त डेटा वॉल्यूम। प्रदर्शन मापन के साथ बहुत कम उलझन हैं, जो उन्हें सार्थक तुलना के लिए बेकार बनाते हैं। –

+3

इसके अलावा, काफी स्पष्ट रूप से, मैं बाहरी लिंक के साथ स्प्रेडशीट को "टूटा" स्प्रैडशीट के रूप में मानता हूं। यह केवल समय की बात है जब तक गलत परिणाम प्रकाशित नहीं होते हैं, संभवतः आपदाजनक परिणामों के साथ। अपने डेटा को डेटाबेस में रखें, जहां उचित डेटा प्रबंधन के लिए कोई समर्थन नहीं होने के साथ विश्लेषणात्मक टूल के अंदर, इसे ठीक तरह से प्रबंधित किया जा सकता है। –

उत्तर

1

यह बहुत अधिक काम है, लेकिन एक XML फ़ाइल से/डेटा को पढ़ने/लिखने (एमएसएक्सएमएल का उपयोग करके) प्रदर्शन समस्या को हल करेगा। यह एक ऐसा मार्ग है जिसे मुझे कुछ परिस्थितियों में अपनाने के लिए मजबूर किया गया है जहां बैंडविड्थ कम है।

जिस गति पर वीबीए डेटा पुनर्प्राप्त कर सकता है और गणना चला सकता है वह कई लिंक का उपयोग करने से बहुत तेज़ है। परिस्थितियों के आधार पर; आप इसे वर्कबुक ओपन इवेंट, या यहां तक ​​कि एक विशिष्ट चेंज इवेंट (कॉम्बोबॉक्स इत्यादि) पर भी कर सकते हैं क्योंकि आप केवल केबी डेटा के साथ काम कर रहे हैं।

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