मेरे वर्तमान मैक्रो को एक पॉवरशेल स्क्रिप्ट निष्पादित करनी चाहिए जो एक एक्सेल वर्कबुक के भीतर उत्पन्न हुई है, मेरे मामले में मान लें कि मैंने अपने दस्तावेज़ फ़ोल्डर में SomeScript.ps1 उत्पन्न किया है।

मैक्रो को कार्यपुस्तिका के भीतर पत्रक1 को संदर्भित करना चाहिए और एक उपयोगकर्ता इनपुट फ़ाइल स्थान प्राप्त करना चाहिए (जैसे C:\Users\JohnDoe\Documents\SomeScript.ps1)।

वहां से मैं फ़ाइल स्थान वाले सेल का उपयोग करके उस स्क्रिप्ट को निष्पादित करना चाहता हूं। मुझसे यह कैसे होगा?

मैंने फ़ाइल स्थान को PSLocation को निर्दिष्ट करने और फिर इसे शैल() फ़ंक्शन के भीतर कॉल करने का प्रयास किया है।

Sub Button_Click()

   PSLocation = Sheets("Sheet1").Cells(2, 2).Value + "SomeScript.ps1"

   Call Shell("powershell -noexit -ExecutionPolicy Bypass -file ""PSLocation""")

End Sub

मैं स्क्रिप्ट को चलाना चाहता हूं क्योंकि यह काम करता है अगर मैं इसे एक स्थानीय फ़ाइल असाइन करता हूं, हालांकि अगर मैं PSLocation का उपयोग करता हूं तो पावरहेल स्क्रिप्ट खुलने पर क्रैश हो जाती है।

0
ContigoBottles 27 अगस्त 2019, 21:04

1 उत्तर

सबसे बढ़िया उत्तर

वीबीए से पावरहेल कमांड में तर्क पारित करने का एक तरीका यहां दिया गया है। path पैरामीटर को वर्कशीट से भी पढ़ा जा सकता है:

path = Sheets("Sheet1").Cells(2, 2).Value + "SomeScript.ps1"

Sub OpenPath()    
    Dim path As String: path = "C:\Desktop\Extraction_Files\"
    Shell "powershell -noexit explorer.exe " & path, vbNormalFocus    
End Sub
0
Vityata 27 अगस्त 2019, 21:16