2012-01-18 12 views
9

के माध्यम से एक्सेल मैक्रो कैसे चला सकते हैं मुझे एक शेड्यूल कार्य के माध्यम से एक्सेल स्प्रेडशीट में मैक्रो चलाने की आवश्यकता है। मैं नीचे के रूप में काम परिभाषित किया है:आप शेड्यूल कार्य

"C: \ Program Files \ Microsoft Office \ Office10 \ excel.exe" ""

समस्या यह है कि जब काम शुरू होता है एक्सेल एक पॉप-अप प्रदर्शित करता है और पूछता है कि क्या हम मैक्रोज़ को अक्षम/सक्षम करना चाहते हैं, जो नौकरी के निष्पादन को अवरुद्ध करता है।

मैं सक्षम मैक्रो पर मैन्युअल रूप से क्लिक किए बिना इस मैक्रो को कैसे चला सकता हूं?

+0

यह मदद कर सकता है https://stackoverflow.com/questions/22771185/how-to-set-recurring-schedule-for-xlsm-file-using-windows-task -शेड्यूलर – Justin

उत्तर

8

एक्सेल लॉन्च करने वाली एक छोटी vbscript लिखें, अपनी कार्यपुस्तिका लोड करें और मैक्रो चलाने के लिए एप्लिकेशन का उपयोग करें। अपना निर्धारित कार्य vbscript चलाएं।

उदाहरण के लिए: http://www.mrexcel.com/forum/showthread.php?t=302970

+0

+1 सर्वश्रेष्ठ दृष्टिकोण। यह कोड सुनिश्चित करने के लिए vbs के अंदर मैक्रो को रिकोड करने लायक है, यानी सक्षम मैक्रोज़ मुद्दों को पराजित करें। – brettdj

+0

स्क्रिप्ट काम करने लगती है लेकिन "मैक्रोज़ सक्षम करें" प्रॉम्प्ट को रोकती नहीं है। मुझे लगता है कि मेरे कार्यस्थल पर स्थापित कॉर्पोरेट सुरक्षा नीति के साथ इसका कुछ संबंध हो सकता है? – mek363

0

एक्सेल लॉन्च करते समय आप इस पॉप अप से बचने के लिए एक्सेल के सुरक्षा स्तर को कम करने का प्रयास कर सकते हैं।

3

आप निर्दिष्ट नहीं करते हैं क्या Excel या क्या विंडोज (या Macintosh) के संस्करण तो मैं यह है कि मैं Excel 2010 का उपयोग कर रहा कार्यालय से निर्दिष्ट करेगा 32-बिट के संस्करण विंडोज 7 अल्टीमेट पर 64 बिट ...


आप एक निर्धारित समय में खुले अपनी कार्यपुस्तिका रखने के लिए और कोड को चलाने के लिए चाहते हैं, पर बाद में, तो यह कोशिश ..

अपनी प्रोजेक्ट में एक नया कोड मॉड्यूल डालें- या- अपने प्रोजेक्ट में पहले से मौजूद एक का उपयोग करें।

एक अनुसूचक सबरूटीन बनाएं जिन्हें आप नीचे देख:

Sub Scheduler() 

'-- RUNS SUB(S) (OR FUNCTIONS) AT TIME SCHEDULED. 

    Application.OnTime TimeValue("11:46:40"), "TheScheduledSub" 

End Sub 

एक सबरूटीन (या समारोह) है कि आप चलाना चाहते हैं बनाएँ। यहां इस उदाहरण के लिए एक है:

Sub TheScheduledSub() 

    Debug.Print "TheScheduledSub() has run at " & Time 

End Sub 

Scheduler() सही समय Scheduler() अंदर निर्दिष्ट, द्वारा TimeValue परिभाषित पर TheScheduledSub() निष्पादित करेंगे। आप TimeValuehere के बारे में अधिक पढ़ सकते हैं।

आप शायद उस समय मान को पार कर सकते हैं जिसे आप शेड्यूलर() उप को उप-पैरामीटर के रूप में अपने उप (ओं) या फ़ंक्शन को निष्पादित करने के लिए चाहते हैं।

आप शायद अब से एक उप 5 घंटे चला सकते हैं, कहें। अर्थात। आवेदन। ओनटाइम अब + टाइमवैल्यू ("05:00:00"), "द शेड्यूल्ड्यूब"

या शायद अब से एक दिन? इसके साथ खेलें।

मुझे अलग-अलग समय पर निष्पादित करने के लिए दो subs प्राप्त हुए। मैंने एक ही समय में दो निष्पादित करने की कोशिश की। एक ही समय में दो अलग-अलग उप-निष्पादन के साथ मेरा अनुभव यह था कि दूसरा उप पहले से पहले निष्पादित करना प्रतीत होता था, लेकिन मैंने पूरी तरह से इसका पता लगाया। तो वाईएमएमवी।

मुझे नहीं लगता कि एक्सेल वीबीए मल्टीथ्रेड सक्षम है इसलिए इसे ध्यान में रखें। मैं ऑफिस सूट से 32-बिट एक्सेल 2010 चला रहा हूं। सुनिश्चित नहीं है कि 64-बिट Office Excel कैसे व्यवहार करता है या उस मामले के लिए कोई अन्य संस्करण या प्लेटफ़ॉर्म।वैसे भी, मल्टीथ्रेडिंग/मल्टीटास्किंग एक्सेल वीबीए वह नहीं है जिसे आपने पूछा लेकिन इसे माना जाना चाहिए।

इस प्रश्न को देखकर और उपरोक्त के साथ खेलना मैं कुछ विचारों के बारे में सोच सकता हूं जो मैं खुद को आजमा देना चाहता हूं!

0

आप कार्यपुस्तिका को भी खोल सकते हैं और मैक्रो कॉल कर सकते हैं। बस निर्धारित कार्य कार्यपुस्तिका खोलें और कार्यपुस्तिका खोले जाने पर मैक्रो चलाएगा।

0

इसके अलावा, मैंने पाया यह एक अच्छा विचार है किसी भी पॉपअप संदेश है कि अपने मैक्रो को बाधित कर सकता है जब चल रहा निष्क्रिय करने के लिए शुरुआत में

Application.DisplayAlerts = False

है।

या ट्यूटोरियल वीडियो देखें: http://youtu.be/lFSgV2gym9g

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