簡體   English   中英

從Powershell啟動時,VBA中的“對象'工作簿'的方法'打開'失敗”,但直接從Excel調用時有效

[英]“Method 'Open' of object 'Workbooks' failed” in VBA when launched from a Powershell, but work when directly call from Excel

我被困在這個問題上。 用戶將去度假,並希望在其Excel上自動執行某些操作。 我為Windows Task Scheduler創建了一個非常基本的Powershell,它可以打開第一個Excel文件,啟動宏並關閉:

$target = "G:\ES\GI\xxxx\xxxxMailer.xlsm" #Where is my file
$objExcel = New-Object -ComObject Excel.Application
$objExcel.Visible = $true
$workbook = $objExcel.Workbooks.Open($target) #Open my file
$objExcel.Run("Callxxxx") #Launch a macro in the target file
$workbook.close($false)
$objExcel.Quit()
[Runtime.Interopservices.Marshal]::ReleaseComObject($objExcel)

在宏中,我有這條非常簡單的行(因此這次在VBA中)用於打開其他工作簿:

Workbooks.Open Filename:="G:\ES\GI\xxxxx\destinations xxxxxx 2018.xlsm", _
    UpdateLinks:=3, _
    ReadOnly:= False

我的問題如下:當我直接從第一個工作簿啟動宏時,第二個打開沒有問題。 但是當我嘗試從Powershell啟動該過程時,出現錯誤“對象“工作簿”的方法“打開”失敗”。

我試圖更改Workbooks.Open的所有屬性,從目標文件禁用StartUp的宏,相同的過程可以處理其他文件,而不是此文件。 我缺乏主意。

問題來自目標工作簿中的特定插件。 $ ObjExcel不能在正確加載的情況下運行。 最后,我將$ ObjModel分配給包含所有插件的完整Excel路徑,而不是分配給在單獨實例上運行的“ -New-Object”。 之后一切正常。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM