Если имя рабочего листа, то

#excel #powershell

Вопрос:

Мне нужно открыть рабочую книгу, в ней всегда есть только один рабочий лист. Теперь мне нужно проверить название листов и установить диапазон печати. Если это не имя рабочего листа, проверьте имя рабочего листа netxt и так далее.

Вот что у меня есть:

 $Excel = New-Object -ComObject Excel.Application
$Excel.visible = $true
$Workbook = $Excel.workbooks.open($RG)

If ($WorkSheets = $WorkBook.WorkSheets | where {$_.name -eq "Test1"}
    $Data = $workbook.Worksheets.Item(1)
    $Data.PageSetup.PrintArea = "C1:S60"

If ($WorkSheets = $WorkBook.WorkSheets | where {$_.name -eq "Test2"}
    $Data = $workbook.Worksheets.Item(1)
    $Data.PageSetup.PrintArea = "C1:S80"
 

Что я делаю не так?

Ответ №1:

Я сделал это:

 If ($WorkBook.WorkSheets | where {$_.name -eq "Test1"})
    {$Data = $workbook.Worksheets.Item(1)
    $Data.PageSetup.PrintArea = "A1:Q50"}

If ($WorkBook.WorkSheets | where {$_.name -eq "Test2"})
    {$Data = $workbook.Worksheets.Item(1)
    $Data.PageSetup.PrintArea = "A1:R50"}
 

Комментарии:

1. Почему $WorkSheets = .. , раз вы не видите, использовать $WorkSheets где угодно

2. Верно… Просто изменил его. Спасибо, Тео!