【发布时间】:2021-08-09 00:54:57
【问题描述】:
我有调用 Excel VBA 脚本并保存文件的 Powershell 脚本。当我收到一个对话框"Would you like to merge your changes with the latest updates on the Server?" 并且 PowerShell 等待用户确认时,我在关闭工作簿时遇到了问题。如何禁止此通知?我已启用 displayAlerts = $false 但在这种情况下似乎不起作用
该文件位于一个共享的 onedrive 文件夹位置,这会提示 Excel 提出这个问题
$file="test - Copy v4.xlsm"
$x1 = New-Object -ComObject "Excel.Application"
$x1.displayAlerts = $false # don't prompt the user
$x1.Visible = $false
$wb = $x1.workbooks.Open($file)
$x1.Run('MACRO_NAME')
$wb.Save()
$wb.Close()
$x1.Quit()
Remove-Variable wb,x1
【问题讨论】:
-
在同一路径使用
SaveAs()是否有效?顺便说一句,我更喜欢使用这个模块而不是 ComObject - ImportExcel -
它在无法访问“vb 测试 - 复制 v5.xlsm”时出错。在 line:26 char:5 + $wb.SaveAs("C:\vb t ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : OperationStopped: (:) [], COMException + FullyQualifiedErrorId : System.Runtime.InteropServices.COMException
-
我可以使用 ImportExcel 模块运行宏吗?
-
试试这个 -
SaveAs($filename, 52, [Type]::Missing, [Type]::Missing, $false, $false, 1, 2)- Workbook.SaveAs。以FileName, FileFormat (52 for xlsm), Password (Can't be null, so use Type.Missing), WriteResPassword (Type missing again), ReadOnlyRecommended, CreateBackup, Access Mode (1 - do not change access mode), ConflictResolution (2 - User changes always accepted)命名的参数解释。您可以在链接页面上看到指向某些值的链接。 -
如果我使用
SaveAs($filename),文档将保存到我的文档文件夹,而不是它原来所在的文件夹路径。我尝试传递文件的完整路径,我收到此错误@987654329 @
标签: excel vba powershell