0
我想創建一個宏,當數據輸入到單元格區域時,它將觸發PowerShell腳本。在此PowerShell腳本中,我試圖從我的PowerShell查詢中獲取對象,以返回到活動工作表,該宏被觸發。唯一困難的部分是,工作簿位於SharePoint服務器上。VBA和PowerShell集成?
有沒有人有任何見識如何實現我的目標,或任何鏈接幫助指向正確的方向。
謝謝。
我想創建一個宏,當數據輸入到單元格區域時,它將觸發PowerShell腳本。在此PowerShell腳本中,我試圖從我的PowerShell查詢中獲取對象,以返回到活動工作表,該宏被觸發。唯一困難的部分是,工作簿位於SharePoint服務器上。VBA和PowerShell集成?
有沒有人有任何見識如何實現我的目標,或任何鏈接幫助指向正確的方向。
謝謝。
您將需要更改事件,以便您可以處理單元格中的數據何時發生更改的檢查。
其次你需要一個方法從powershell命令返回數據。我只是使用命令行操作中的>>操作符將數據放入文本文件中,然後再讀取文本文件。
第三,你需要對這些數據做些什麼。
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" Then ' If A1 changes...
Dim FileNum As Integer
Dim FileName As String
Dim DataLine As String
Dim objShell
Dim fso
Set fso = CreateObject("Scripting.FileSystemObject")
Set objShell = CreateObject("WScript.Shell")
FileName = "C:\data.txt"
cmdString = "Powershell DIR >>" + FileName ' Cmd String for Powershell
Call objShell.Run(cmdString, 0, True) ' Run the command, data is exported to FileName path
FileNum = FreeFile()
Open FileName For Input As #FileNum ' Open the File we generated
While Not EOF(FileNum)
Line Input #FileNum, DataLine ' read in data 1 line at a time
' Do something with data line that was saved from the shell script.
Wend
Close #FileNum
Call fso.DeleteFile(FileName) ' Delete the file we generated
End If
End Sub
這是完美的!非常感謝你,我真的很感激你的洞察力。 – mdo8105