使用PowerShell,我要打开几个Excel工作簿,刷新其中的所有链接,然后计算工作表,以便其他用户打开它们时,他们可以看到更新的链接,而无需刷新链接。我的脚本有效,但不适用于所有工作表。
我发现将工作表设置为“手动计算”会阻止它在“保存并关闭”时进行计算,因此我添加了脚本以将“计算”更改为“自动”,然后又恢复为“手动”,但不适用于其中一张工作表。该工作表与其他工作表之间的唯一区别是,它位于不同的文件夹中,但是脚本可以访问该文件夹。
$Excel = new-object -comobject excel.application
$Excel.displayAlerts = $false # don't prompt the user
$Excel.visible = $False;
$wb = $Excel.workbooks.open("C:\Folder1\File1.xlsm")
$xlAutomatic = -4105
$xlCalculationManual = -4135
$Excel.Calculation = $xlAutomatic
$wb.RefreshAll() #refresh links
$wb.close($true) #close and save
$wb = $Excel.workbooks.open("C:\Folder1\File2.xlsm")
$wb.RefreshAll() #refresh links
$wb.Calculate
$wb.close($true) #close and save
$wb = $Excel.workbooks.open("C:\Folder1\File3.xlsm")
$wb.RefreshAll() #refresh links
$wb.Calculate
$wb.close($true) #close and save
$wb = $Excel.workbooks.open("C:\Folder1\Folder2\File4.xlsm") # <-----File that is not updating
$wb.RefreshAll() #refresh links
$wb.Calculate
$wb.close($true) #close and save
$wb = $Excel.workbooks.open("C:\Folder1\File1.xlsm")
$wb.RefreshAll() #refresh links
$wb.Calculate
$Excel.Calculation = $xlCalculationManual
$wb.close($true) #close and save
$Excel.quit()
spps -n excel
当我试图找到可行的方法时,我觉得这里有很多我不需要的代码。
编辑-
这帮助我找到了最初的解决方案。我只想了解为什么它仅适用于某些文件。 Powershell Script - Open Excel, Update External Data, Save as