VBA इन्सर्ट पिक्चर बग - एक्सेल टिप्स

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

यह कोड Excel 2007 या उससे पहले काम करता था। लेकिन Excel 2010 में कुछ बदल गया है। जब आप ActiveSheet.Pictures.Insert कोड चलाते हैं, तो Excel चित्र सम्मिलित नहीं करता है। इसके बजाय, यह चित्र के लिए एक लिंक सम्मिलित कर रहा है।

बेशक, जब आप अपने कंप्यूटर पर कोड चलाते हैं, तो ऐसा लगता है कि सब कुछ काम कर गया। चित्र प्रकट होता है।

लगता है कि मैक्रो ने काम किया।

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

छवि के बजाय लाल X

खैर, निश्चित रूप से छवि मेरे प्रबंधक के कंप्यूटर पर नहीं है। मैंने एक्सेल से चित्र का लिंक बनाने के लिए नहीं कहा। मैंने चित्र डालने के लिए एक्सेल से पूछा। लेकिन दर्ज कोड तस्वीर के लिए एक लिंक डाल रहा है।

समाधान विभिन्न कोड पर स्विच करना है। Shapes.AddPicture का उपयोग करके, आप निर्दिष्ट कर सकते हैं LinkToFile:=msoFalse। यहाँ कोड का उपयोग करना है:

Sub HowToInsertPicture() ' This code fails in 2010 or newer ' ActiveSheet.Pictures.Insert( _ ' "C:UsersBillDesktopPhotoPrintAll RocketaWalg180422-3.jpg.webp").Select NewFN = "C:UsersBillDesktopPhotoPrintAll RocketaWalg180422-3.jpg.webp" ActiveSheet.Shapes.AddPicture(Filename:=NewFN, _ LinkToFile:=msoFalse, _ SaveWithDocument:=msoTrue, _ Left:=1, Top:=1, Width:=140, Height:=195).Select End Sub

वीडियो देखेंा

वीडियो ट्रांसक्रिप्ट

पॉडकास्ट, एपिसोड 2214 से एक्सेल सीखें: वास्तव में कष्टप्रद VBA बग जब आप एक चित्र सम्मिलित करने का प्रयास कर रहे हों।

ठीक है। तो, हे, यह एक्सेल 2010 में होने लगा। मैं अभी हाल ही में इसके द्वारा जला दिया गया।

इसलिए मैं इस कार्यपुस्तिका में एक चित्र सम्मिलित करने जा रहा हूं, लेकिन मैं उस क्रिया को रिकॉर्ड करना चाहता हूं ताकि मैं इसे स्वचालित रूप से कर सकूं। देखें, मैक्रोज़, रिकॉर्डर मैक्रो, HowToInsertAPicture। उत्तम। और मैं यहां एक चित्र डालने जा रहा हूं: चित्र, चित्र, चलो हमारे एक रॉकेट फोटो और सम्मिलित करें चुनें। ठीक है, रिकॉर्डिंग बंद करो। सुंदर। अब, मैं उस से छुटकारा पाने जा रहा हूं। मैं मैक्रोज़ पर एक नज़र डालना चाहता हूं, इसलिए Alt + F8, HowToInsertAPicture, Edit, और यह कहता है कि यह है: ActiveSheet.Pictures.Insert और फिर तस्वीर का रास्ता। ठीक है। हाँ, यह अच्छा लगता है। और, वास्तव में, हमें इसे चलाने में सक्षम होना चाहिए। तो Alt + 8, HowToInsertAPicture, और Run, और हम चित्र प्राप्त करते हैं - जो सुंदर है। जब तक मैं इस कार्यपुस्तिका को सहेजता हूं और आपको इसे डाउनलोड करने देता हूं या किसी और को भेजता हूं, और तब चित्र नहीं आता 'टी बिल्कुल दिखाओ - सब मुझे मिलता है एक लाल एक्स कह रहा है, अरे, हम अब तस्वीर नहीं पा सकते हैं। जैसे आपको क्या मतलब है आप चित्र नहीं ढूंढ सकते हैं? मैंने आपको चित्र सम्मिलित करने के लिए कहा, चित्र का लिंक नहीं। लेकिन एक्सेल 2010 में शुरू होने वाला यह रिकॉर्डेड कोड वास्तव में तस्वीर का लिंक डाल रहा है। और अगर मैं इस कार्यपुस्तिका को किसी ऐसे कंप्यूटर पर खोलता हूं जिसमें इस ड्राइव और उस चित्र तक पहुंच नहीं है: लाल X. सुपर कष्टप्रद।

ठीक है। इसलिए, किसी कारण से, Excel 2010 में, करने के लिए नई चीज़, ActiveSheet.Pictures.In के बजाय ActiveSheet.Shapes.AddPicture करें। ठीक है। और हम अभी भी एक फ़ाइल नाम निर्दिष्ट कर सकते हैं, लेकिन फिर हमारे पास ये अतिरिक्त तर्क हैं: LinkToFile = msoFalse-- दूसरे शब्दों में, बेवकूफ लाल लिंक न बनाएं - और फिर, SaveWithDocument: = msoTalue-- जिसका अर्थ है, वास्तव में वहाँ में तस्वीर डाल दिया और वे निर्दिष्ट कर सकते हैं जहाँ यह माना जाता है-- बाईं, शीर्ष…

अब, हम ऊँचाई और चौड़ाई का पता कैसे लगाते हैं? ठीक है। ठीक है, हम इसे आनुपातिक रूप से बदलना चाहते हैं, है ना? इसलिए मैं Shift कुंजी को दबाए रखने जा रहा हूं, जैसे, यह डेटा से भरी एक से कम स्क्रीन पर वापस मिलता है, शायद वहां भी ऐसा ही हो। तो यही मेरा लक्ष्य है। मैं चित्र सम्मिलित करना चाहता हूं और उस चयनित आकार के साथ एक बीम है। मैं तत्काल विंडो के लिए VBA Alt + F11, Ctrl + G पर वापस आऊंगा और मैं इसके लिए पूछूंगा: चयन। उपलब्धता-- तो यह प्रश्न चिह्न, स्थान, चयन डॉट चौड़ाई और एक प्रश्न चिह्न, चयन डॉट ऊंचाई (चयन। चयन)। ठीक है, और जो मुझे 140 और 195-- के बारे में बताता है, तो चौड़ाई, 140 और 195 जैसी। तत्काल विंडो से छुटकारा पाएं, और फिर यहां हम इसे हटा देंगे और कोड चलाएंगे, और यह वास्तव में इसे सम्मिलित करता है। यह सही आकार है, जब आप इसे डाउनलोड करेंगे तो यह खुला हो सकेगा,या मैं इसे डाउनलोड करता हूं, यदि आपके पास मूल चित्र तक पहुंच नहीं है।

मैं इसे प्राप्त करता हूं, चीजें बदल जाती हैं, उन्हें कोड बदलना पड़ता था। लेकिन तथ्य यह है कि वे मैक्रो रिकॉर्डर को अपडेट नहीं करते हैं, और मैक्रो रिकॉर्डर हमें खराब कोड दे रहा है, जो काम नहीं करता है। यह सुपर कष्टप्रद है।

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

ठीक है, रैप-अप आज-यह मेरी समस्या है। मैंने एक चित्र सम्मिलित करने के लिए कोड दर्ज किया है और यह चित्र के लिए एक लिंक बना रहा है, इसलिए किसी और को मैं चित्र देखने के लिए कार्यपुस्तिका नहीं भेज सकता। इसके बजाय, मैं मैक्रो रिकॉर्डर का उपयोग कर रहा हूं जो ActiveSheets.Shape.Picture करता है, इस नए ActiveSheet.Shapes.AddPicture का उपयोग करें। या हम LinkToFile को निर्दिष्ट कर सकते हैं, नहीं; दस्तावेज़ के साथ सहेजें, हाँ; और आप जाने के लिए अच्छा होगा

ठीक है, हे, देखने के लिए धन्यवाद, मैं अगली बार आपको एक और नेटकास्ट से देखूंगा।

एक्सेल फ़ाइल डाउनलोड करें

एक्सेल फ़ाइल डाउनलोड करने के लिए: vba-insert-picture-bug.xlsm

कई बार, एक्सेल में मैक्रो रिकॉर्डर गलत कोड रिकॉर्ड करता है। उपरोक्त फिक्स के साथ, आप VBA का उपयोग करके सफलतापूर्वक चित्र सम्मिलित कर सकते हैं।

एक्सेल थॉट्स ऑफ द डे

मैंने अपने एक्सेल के बारे में सलाह के लिए अपने एक्सेल मास्टर दोस्तों से पूछा है। विचार करने के लिए आज का विचार:

"एक्सेल उन लोगों की सेवा में एक उपकरण है जिन्हें परिणामों के साथ रहना पड़ता है।"

ओज दू सोइल

दिलचस्प लेख...