Я написал сценарий Powershell для копирования листа из книги A в другую книгу B. Рабочий лист содержит определения имен для диапазонов внутри этого листа. Первоначально определенные имена являются глобальными в книге A, т.е. могут ссылаться на любые рабочие листы в книге A.Сделать Excel определенные имена в пределах рабочего листа глобальными
Но теперь, после копирования на рабочий лист B, определенные имена ограничиваются только этим листом. Как я программным образом (с помощью сценария Powershell предпочтительно) сделать все эти именованные диапазоны глобальными, то есть можно ссылаться со всех листов в книге B.
Некоторые коды для ясности.
#Script to update SOP from 5.1 to 5.2
$missing = [System.Type]::missing
#Open files
$excel = New-Object -Com Excel.Application
$excel.Visible = $False
$excel.DisplayAlerts = $False
$newTemplate = "C:\WorkbookA.xls"
$wbTemplate = $excel.Workbooks.Open($newTemplate)
$oldSop = "C:\WorkbookB.xls"
$wbOldSop = $excel.Workbooks.Open($oldSop)
#Delete 'DATA' worksheet from old file
$wsOldData = $wbOldSop.Worksheets.Item("DATA")
$wsOldData.Delete()
#Copy new 'DATA' worksheet to old file
$wbTemplate.Worksheets.Item("DATA").Copy($missing,$wbOldSop.Worksheets.Item("STATUS"))
#Save
$wbOldSop.Save()
$wbOldSop.Close()
#Quit Excel
$excel.Quit()