विकल्प 1
अपने विशिष्ट मामले में सबसे आसान विकल्प के निर्माण के लिए किया जाएगा आउटलुक की बजाय एक्सेल मैक्रो में कमांड को सेव करें और छोड़ दें।
Sub AskMeAlerts()
Dim appExcel As Excel.Application
Dim wkb As Excel.Workbook 'Is this declaration necessary for some code elsewhere? You do not use this variable and I would recommend removing the declaration.
Set appExcel = CreateObject("Excel.Application")
With appExcel
.Workbooks.Open ("C:\Ask me question workflow.xlsm")
.Visible = True
.Run "'Ask me question workflow.xlsm'!AskMeFlow"
'No need to explicitly set alert values or save workbook as Excel macro will handle this.
End With
Set appExcel = Nothing
Set wkb = Nothing 'Again, is this necessary?
End Sub
फिर आप जोड़ सकते हैं "workflow.xlsm सवाल मुझसे पूछें" फ़ाइल के अंत में निम्नलिखित:
Application.DisplayAlerts = False
ThisWorkbook.Close SaveChanges:=True
Application.Quit
है, तो आप अपने आउटलुक कोड में संशोधन कर सकता है नोट: यदि आप मैक्रो को मैन्युअल रूप से या अन्य उपयोग मामलों में भी चलाएंगे जहां आप कार्यपुस्तिका को सहेजने, बंद करने और छोड़ने के लिए नहीं चाहते हैं, तो आप AskMeFlow मैक्रो में एक इनपुट चर जोड़ने पर विचार कर सकते हैं जो गलत पर डिफ़ॉल्ट है लेकिन सेट है आउटलुक द्वारा सच है। मुझे लगता है कि यह इस उत्तर के दायरे से थोड़ा सा है, इसलिए मैं आगे विस्तार नहीं करूंगा, लेकिन अगर आपको इस विकल्प में दिलचस्पी है तो मुझे बताएं।
विकल्प 2
संशोधित। उरी के समाधान देखें; मैंने सुझाए गए सुधार मूल रूप से उस समाधान को बदल नहीं सकते हैं।
विकल्प 3
एक्सेल कोड की प्रकृति पर निर्भर करता है, आप एक समारोह में बारी और आउटपुट चर ले सकता है। नीचे की तरह कुछ:
Sub AskMeAlerts()
Dim appExcel As Excel.Application
Dim wkb As Excel.Workbook
Dim StrOutput as string
StrOutput = "Excel macro did not complete."
Set appExcel = CreateObject("Excel.Application")
appExcel.Workbooks.Open ("C:\Ask me question workflow.xlsm")
appExcel.Visible = True
StrOutput = appExcel.Run "'Ask me question workflow.xlsm'!AskMeFlow"
MsgBox StrOutput
appExcel.DisplayAlerts = False
appExcel.ActiveWorkbook.Save
appExcel.Quit Set appExcel = Nothing
Set wkb = Nothing
End Sub
फिर आप एक समारोह के लिए AskMeFlow बदल सकते हैं और निम्नलिखित कोड जोड़ना होगा:
Function AskMeFlow() as String
AskMeFlow = "Uncaught error executing Excel code."
'Your code here
AskMeFlow = "Excel code completed successfully!"
End Function
स्रोत
2016-02-25 23:12:42
कृपया हमें प्रासंगिक दिखाने आपके कोड के कुछ हिस्सों। (यानी नहीं पूरी बात) –
'मंद appExcel Excel.Application मंद WKB Excel.Workbook सेट appExcel = CreateObject ("Excel.Application") appExcel.Workbooks.Open ("सी के रूप में के रूप में: \ मेरे कार्यप्रवाह प्रश्न पूछें .xlsm ") appExcel.Visible = सच appExcel.Run" 'मुझे workflow.xlsm प्रश्न पूछें'! AskMeFlow " ---- यहाँ मैं प्रतीक्षा करने के लिए जब तक मैक्रो किया जाता है चाहता हूँ ---- appExcel .DisplayAlerts = झूठी appExcel.ActiveWorkbook.Save appExcel.Quit ऐपएक्ससेल सेट करें = कुछ भी नहीं सेट wkb = कुछ भी नहीं एंड सब ' – user3016795
मुझे लगता है कि आप स्वयं के लिए देख सकते हैं कि यह पूरी तरह से गैरकानूनी है ... कृपया अपना प्रश्न संपादित करें, अपना कोड वहां रखें, और '{}' बटन का उपयोग करके इसे सही तरीके से प्रारूपित करें। –