使工作表中的Excel定义名称为全局

我编写了Powershell脚本以将工作表A从工作簿A复制到另一个工作簿B.工作表包含该表中的范围的定义名称。 原来,在工作簿A中定义的名称是全局的,即。 可以从工作簿A中的任何工作表中引用

但现在,在复制到工作表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() 

我有这个问题,直接在Excel本身复制具有命名范围的工作表。 我上周刚刚遇到这个问题。 我找不到原因,我怀疑PowerShell真的没有任何事情要做。 我唯一的追求似乎是删除并重新创build二级表上命名的范围。