워크 시트를 통합 문서 A에서 다른 통합 문서 B로 복사하는 Powershell 스크립트를 작성했습니다. 워크 시트에는 해당 시트 내의 범위 이름이 정의되어 있습니다. 원래 정의 된 이름은 통합 문서 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()