这是我的第一个StackOverflow问题,但我会尽量牢记社区标准。
我在Win7 Pro和PoSh v4.0上运行Office 2013。在执行后续脚本时,我收到以下错误:“方法调用失败,因为[System .__ ComObject]不包含名为'Close'的方法。
$xl = New-Object -comobject Excel.Application
$xl.Visible = $false
$xl.DisplayAlerts = $false
$filepath = "C:\Users\rysullivan\Desktop\Projects\EDCautomation\attach\"
$wb1 = $xl.Workbooks.Open((Join-Path $filepath "Ryan Sullivan-Template.xlsx"))
sleep 5
$wb1.Close()
[System.Runtime.Interopservices.Marshal]::ReleaseComObject($xl)
为了符合呈现将重现错误的最短代码的标准,我从较大的自动化程序中开发了上述代码
Powershell 4.0和Excel 2013 | 错误| 一轮工作似乎正处于同一时刻。我遵循了XXInvidiaXX提供的线程/区域性解决方案,并且生成了相同的错误。
PowerShell中Excel自动化的问题得到了Roy的回答,它指出了计时错误,但我插入了Sleep命令并尝试分别运行open和close命令,但均无济于事。
任何帮助,特别是基础理论,都将不胜感激。
尽管to的参数Workbook.Close()
都是可选的,但MSDN上的所有示例都至少提供了一个(SaveChanges参数),这使我相信,当您不提供任何参数时,PowerShell无法识别方法签名。
您可能会遇到以下更好的运气:
$wb1.Close($false)
或者
$wb1.Close($false,$null,$null)
用替换$true
以保存您可能进行的任何更改
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句