2010-09-03 15 views
31

के लिए सी # में मैक्रो लिख सकते हैं। मुझे ऑपरेशन करने के लिए एक्सेल में लगभग 25 शीट्स को पार करना होगा। मैं इसे वीबीए का उपयोग करके कर रहा हूं और इसे वास्तव में धीमा कर रहा हूं, इसलिए जानना चाहता था कि मैं सी # का उपयोग कर सकता हूं और यदि कर रहा हूं इससे मुझे प्रक्रिया तेज करने में मदद मिलेगी।क्या हम एक्सेल

+0

मुझे नहीं लगता कि आप सीधे एक मैक्रो में सी # का उपयोग कर सकते हैं। आप शीट के साथ काम करने के लिए सी # में लिखित एक एडइन बना सकते हैं। यदि यह आपकी प्रक्रिया को गति देता है तब तक इसका उत्तर नहीं दिया जा सकता है जब तक आप वर्णन न करें कि आप क्या कर रहे हैं। – Khh

+0

@gizgok: नमस्ते, कृपया मेरा उत्तर स्वीकार करें – abatishchev

उत्तर

-1

आप वास्तव में क्या संचालन कर रहे हैं? सबसे पहले आपको घटना को वीबीए कोड लिखने की आवश्यकता नहीं है। आप बस कार्यपुस्तिका में एक मैक्रो रिकॉर्ड कर सकते हैं और उसे C: \ Program Files \ Microsoft Office \ Office12 \ Xlstart में सहेज सकते हैं। एक्सेल एक मैक्रो रिकॉर्ड करेगा और इसे आपके द्वारा खोलने वाली सभी चादरों में उपलब्ध कराएगा।

आप अपनी आवश्यकता के अनुरूप उपर्युक्त प्रक्रिया में ऑटो जेनरेटेड वीबीए कोड को भी ट्विक कर सकते हैं।

व्यक्तिगत रूप से, मुझे नहीं लगता कि काम करने के लिए सी # एड-इन लिखना कार्य को तेज करेगा। वीबीए विशेष रूप से ऑफिस ऑब्जेक्ट मॉडल के साथ काम करने के लिए बनाई गई एक भाषा है। यदि वह पर्याप्त तेज़ी से काम नहीं करता है तो आपको यह देखने की ज़रूरत है कि आप किस ऑपरेशन कर रहे हैं?

मुझे लगता है कि एक्सेल ऑब्जेक्ट मॉडल में हेरफेर करने और इसे बनाए रखने के लिए सी # एड-इन बनाना बहुत अधिक है। इसमें एक बड़ा सीखने की वक्र भी शामिल होगी।

+1

Excel _record macro_ सुविधा के साथ बनाए गए मैक्रोज़ ** बहुत धीमे ** होते हैं क्योंकि वे अनावश्यक _activate_ और _select_ आदेशों का एक टन जारी करते हैं। यह देखने के लिए एक छोटा मैक्रो रिकॉर्ड करने के लिए उपयोगी हो सकता है कि कुछ कैसे किया जा सकता है, लेकिन यदि निष्पादन गति सभी चिंताओं पर है, तो आपको रिकॉर्ड किए गए मैक्रो को फिर से लिखना होगा। – riderBill

28

कॉल सी # VBA मैक्रो की तरह Excel कार्यपुस्तिका से - आप कर सकते हैं सी # अनुप्रयोग से नहीं

पहुँच Excel कार्यपुस्तिका - आप कर सकते हैं। इसे कार्यालय के लिए माइक्रोसॉफ्ट विजुअल स्टूडियो टूल्स (VSTO)

+40

योड की तरह बोलें - आप –

+0

करते हैं यह स्वीकार्य उत्तर – Arijoon

+0

होना चाहिए मैं असहमत हूं। आप एक मैक्रो के माध्यम से एक (सी #) वेब सेवा कॉल कर सकते हैं। मुझे लगता है कि यह वेबपीआई में लिखे गए आरामपूर्ण अंतराल पर लागू होता है ... – cs0815

7

हालांकि आप वीएसटीओ का उपयोग कर अपने वर्तमान वीबीए मैक्रो में सी # में समकक्ष लिखने में सक्षम हो सकते हैं, लेकिन मुझे संदेह है कि यह प्रदर्शन में कोई महत्वपूर्ण अंतर करेगा।

दोनों मामलों में, आप उसी एक्सेल COM ऑब्जेक्ट्स में हेरफेर कर रहे होंगे और निष्पादन समय बहुत समान होने की संभावना है।

आपका प्रदर्शन मुख्य रूप से उन तकनीकों पर निर्भर करेगा जिनका उपयोग आप Excel ऑब्जेक्ट्स में हेरफेर करने के लिए कर रहे हैं। एक साधारण उदाहरण के रूप में, आप एक्सेल रेंज से मानों को एक एकल कथन में 2-आयामी सरणी में असाइन कर सकते हैं: कोड में पंक्तियों और स्तंभों के माध्यम से पुनरावृत्ति करने से और यह आपके सरणी में मानों को एक-एक करके कॉपी करने से बहुत तेज़ है।

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

4

आप सी # में एक्सेल ऑटोमेशन कमांड लिखने के लिए मेरे ESharper एड-इन को आजमा सकते हैं। एक अलग सी # एप्लिकेशन या ऐड-इन बनाने से यह आसान है, और आपके पास प्रदर्शन अनुकूलन के लिए अधिक विकल्प के साथ एक्सेल ऑब्जेक्ट मॉडल और एक्सेल सी एपीआई दोनों तक पहुंच होगी।

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