1
我编写了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()