【发布时间】:2011-02-01 22:24:29
【问题描述】:
我编写了 Powershell 脚本来将工作表从工作簿 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()
【问题讨论】:
标签: powershell excel vba