2009-04-01 13 views
8

यहाँ योएल के लिए एक है ...के लिए जरूरत के सर्वश्रेष्ठ लघु उदाहरण एक्सेल VBA

मैं तरीके एक एक्सेल उपयोगकर्ता के लिए प्रदर्शित करने के लिए देख रहा हूँ (कोई प्रोग्रामिंग अनुभव के साथ) सीखने कुछ एक्सेल VBA उनके जीवन काम कर कर सकते हैं एक्सेल के साथ थोड़ा आसान है।

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

मुझे आशा है कि इस तरह का एक छोटा वीबीए उदाहरण किसी ऐसे व्यक्ति के लिए समझना मुश्किल नहीं होगा जिसने कभी कोड की एक पंक्ति नहीं लिखी है, और उम्मीद है कि थोड़ा एक्सेल वीबीए सीखने की कोशिश कर रहा है।

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

  1. महत्वपूर्ण समय की बचत (बड़े टी, जहां टी = मैनुअल प्रक्रिया/कोड के लिए समय के लिए समय):

    आदर्श उदाहरण निम्नलिखित विशेषताएं होगा।

  2. गैर-सार, दैनिक स्प्रेडशीट उदाहरण।
  3. अंतिम परिणाम जो आसानी से प्राप्त नहीं हो सकते हैं।
  4. लघु, मूल वीबीए कोड के साथ उपलब्ध।

ध्यान रखें कि लक्षित दर्शक प्रोग्रामिंग में अपना पहला कदम उठा रहे हैं।

+0

बस यह मत भूलना: "सबसे अच्छा मैक्रो कोई मैक्रो नहीं है" (पुरानी एमएस पुस्तक के प्रस्ताव से)। और यह सच है ... मैंने लोगों को पहिया को कितनी बार देखा है, क्योंकि उन्हें एक्सेल में आसानी से उपलब्ध सुविधाओं को नहीं पता था! उदाहरण: गोटो स्पेशल। सर्वश्रेष्ठ वीबीए डेवलपर्स वे हैं जो Excel के अंदर की आंतरिक संभावनाओं को जानते हैं। –

उत्तर

2

वीबीए के साथ अपना स्वयं का "फ़ंक्शन" बनाएं जिसे आप शीट के भीतर से किसी अन्य फ़ंक्शन की तरह उपयोग कर सकते हैं।

आप ऐसी चीजें कर सकते हैं जो सादे एक्सेल में संभव नहीं हैं, या लागू करने या पुन: उपयोग करने में बहुत मुश्किल हैं।

एक उदाहरण:

VBA में एक नया मॉड्यूल बनाने के लिए, इस तरह कोड जोड़ें:

Public Function SizeOfFile(a As String) 
    SizeOfFile = VBA.FileLen(a) 
End Function 

और तुम अब एक सेल में एक सूत्र में SizeOfFile उपयोग कर सकते हैं।

यदि सेल ए 1 में फ़ाइल का नाम होता है, तो बी 1 आकार प्राप्त करने के लिए =SizeOfFile(A1) से भरें।

इसके अलावा

आप रिकॉर्डिंग (और संपादन) एक मैक्रो दिखा सकते हैं, कदम है कि आप अक्सर करते हैं दोहराने के लिए।

1

वीबीए में मेरा पहला कदम उठाए जाने के बाद वीबीए में मेरा पहला कदम उठाया गया और मेरी नई टीम में से एक ने हर सुबह 30 मिनट खर्च करने के बारे में एक रिपोर्ट को संकलित करने के लिए लगभग 1,000 वस्तुओं की एक सूची से संकलित किया, जिसके लिए विभिन्न तरीकों से ऑटो फ़िल्टर किया गया आवश्यक मायने रखता है वीबीए के साथ मिलकर कुछ घंटों तक काम बटन पर क्लिक किया गया था और लगभग एक सेकंड था।

कुछ भी यह है कि एक पाश शामिल की तरह एक महत्वपूर्ण समय की बचत के अपने पहले मानदंडों को पूरा करने के लिए जा रहा है। शायद एक ऐसा कार्य जिसमें 200 कोड नंबर या पते की सूची से क्षेत्र कोड या घर संख्या निकालने शामिल है?

11

आप कर सकते हैं, तो देखने के लिए उन्हें एक 1/2 घंटे के लिए Excel का उपयोग करें और आप सही अवसर मिल जाएगा। जब वे उस स्प्रैडशीट को खोलते हैं, सभी कॉलम ऑटोफिट करते हैं, कॉल ए को डेट के रूप में प्रारूपित करते हैं, सही कॉल जे को औचित्य देते हैं, 2 से 5 पंक्तियों को हटाते हैं, और प्रिंट अभिविन्यास को परिदृश्य में बदलते हैं तो आपको विजेता मिल गया है। उन्हें फिर से करें, लेकिन मैक्रो रिकॉर्डर के साथ। फिर मैक्रो रिकॉर्डर फिर से चलाएं।

कुछ वे वास्तविक जीवन में उपयोग करने के साथ काम करके, इसे और अधिक प्रभाव पड़ेगा।

आप पहले शॉट के साथ एक दिन उन्हें 1/2 घंटे बचाने के लिए नहीं है। उन चीज़ों पर 30 सेकंड की कड़ी मेहनत करें जिन्हें वे उपयोग करेंगे और वे उन सभी चीजों के बारे में सोचना शुरू कर देंगे जिन्हें वे स्वचालित करना चाहते हैं। मेरे अनुभव में, वे बदले में जल्दी से चले जाएंगे। किसी भी समय, वे चाहते हैं कि एक्सेल एक वेब फॉर्म भरें, जानकारी आयात करें, और उन्हें कॉफी प्राप्त करें।

2

लक्षित दर्शकों शक्ति उन में लोगों को कर रहे हैं?

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

उदाहरण 1

कई उत्कृष्टता एक नामकरण परंपरा निम्न फ़ाइलें हैं:

c:\data1.xls 
    c:\data2.xls 
    c:\data3.xls 

मैं एक स्तंभ में आईडी नंबर दर्ज करें और डेटा प्राप्त करने के लिए एक VBA करने में सक्षम होना चाहते थे मेरे लिए अन्य सभी कॉलम के लिए। मैंने बाहरी संदर्भ के साथ ऐसा करने का विकल्प चुना क्योंकि तब मुझे फ़ाइलों को खोलने और बंद करने और उन फ़ाइलों के अस्तित्व के बारे में चिंता करने की आवश्यकता नहीं थी।

मैं इस तरह देखने के लिए परिणाम चाहता था:

id  data  hyperlink 
    1  extRefA1 c:\data1.xls 
    3  extRefA1 c:\data3.xls 
    500 extRefA1 c:\data500.xls 

मैं हाइपरलिंक बनाने के लिए VBA जरूरत नहीं थी, लेकिन मैं एक आसान तरीका VBA के बिना बाहरी संदर्भ बनाने के लिए नहीं मिल सका। मैंने अप्रत्यक्ष का उपयोग करने की कोशिश की, लेकिन संदर्भित कार्यपुस्तिका को काम करने के लिए अप्रत्यक्ष कार्य के लिए खोला जाना था। इसलिए, मैंने बाहरी संदर्भ बनाने के लिए वीबीए का उपयोग किया।

उदाहरण 2

यह एक उदाहरण 1 के समान है, लेकिन मैं अलग चार्ट डेटा गठबंधन करने के लिए किया था।

प्रत्येक में डेटा Excel फ़ाइल स्तंभों में थे:

X Y 
    1 5 
    2 10 
    3 5 
    4 60 

मैं पंक्तियों में संयुक्त चार्ट डेटा चाहता था:

  1 2  3 4 
    data1 5 10 5 60 
    data3 30 60 4 2 
    data500 25 45 20 5 

तो मैं एक VBA कि एक सूत्र सरणी युक्त डाल बनाया एक ट्रान्सस्पोज़ में बाहरी संदर्भ

data1 सूत्र सरणी कुछ इस तरह देखा:

=TRANSPOSE('c:\[data1.xls]Sheet1'!$B$2:$B$5) 

मैं कैसे दूसरों को एक्सेल और VBA का उपयोग पता नहीं है, लेकिन इन मेरे लिए अत्यंत उपयोगी साबित हुई।

फ्रांसिस

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