вызов макроса Excel с PowerShell - PullRequest
1 голос
/ 08 марта 2019

Я пытаюсь открыть лист Excel, запустить макрос и периодически закрывать его, чтобы получать уведомление по электронной почте, когда дата в ячейке меняется на "xxx".

К сожалению, powershell показывает ошибку при запуске макроса ниже:


Sub tata(ByVal Target As Range)
  On Error Resume Next
    If Target.Cells.Count < 1 Then Exit Sub
  Set xRg = Intersect (Range("AT28:AT673"), Target
   If xRg Is Nothing Then Exit Sub
   If IsNumeric(Target.Value) And Target.Value = 1 Then
     Call Mail_small_Text_outlook
  End If
End Sub
Sub Mail_small_Text_Outlook()
    Dim xOutApp As Object
    Dim xOutMail As Object
    Dim xMailBody as String
    Set xOutApp = Create.Object("Outlook.Application")
    Set xOutMail = xOut.App.CreateItem(0)
    xMailBody = "Hi" & vbNewLine & _
                ""
    On error Resume Next
    With xOutMail
       .To = "Name@domainname.com"
       .CC = ""
       .BCC = ""
       .Subject = "order"
       .Body = "xMailbody
       .Send
    End With
    On Error GoTo 0
    Set xOutMail = Nothing
    Set xOutApp = Nothing
End Sub

Ausnahme beim Aufrufen von "Run" с 1 аргументом (en): "Параметр nicht необязательный. (Ausnahme von HRESULT: 0x8002000F (DISP_E_PARAMNOTOPTIONAL))" В Зейле: 14 Зейхен: 2 + $ App.Run ("тата") + ~~~~~~~~~~~~~~~~ + CategoryInfo: NotSpecified: (:) [], MethodInvocationException + FullyQualifiedErrorId: COMException


 $xlFixedFormat = [Microsoft.Office.Interop.Excel.XlFileFormat]::xlOpenXMLWorkbookMacroEnabled
$app = New-Object -comobject Excel.Application
 $app.Visible = $True
 $app.DisplayAlerts = $False
 $wb = $App.Workbooks.Open("c:\my.xlsm")
 $App.Run("tata")
 $app.ActiveWorkbook.Saves
 $app.Quit()

1 Ответ

0 голосов
/ 08 марта 2019

Вам нужно передать аргумент (Target) при вызове макроса:

$App.Run("tata", "value for target")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...