Сделать имена, определенные в Excel, на листе глобальными - PullRequest
1 голос
/ 29 марта 2010

Я написал скрипт 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()  

1 Ответ

0 голосов
/ 29 марта 2010

У меня есть эта проблема при копировании листов с именованными диапазонами непосредственно из самого Excel. У меня была эта проблема только на прошлой неделе. Я не мог понять почему, и я подозреваю, что PowerShell действительно не имеет к этому никакого отношения. Казалось, единственным моим выходом было сбросить и воссоздать именованные диапазоны на вторичных листах.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...