Используя 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
Мне кажется, что у меня много кода, который ямне здесь не нужно, поскольку я пытаюсь найти то, что работает.
Edit-
Это помогло мне найти первоначальное решение.Я просто хочу понять, почему это работает только для некоторых файлов. Сценарий Powershell - Открыть Excel, Обновить внешние данные, Сохранить как