冻结工作表的第一行
PowerShell代码创buildExcel。
我试图冻结第一行:
$excel = New-Object -Com Excel.Application $excel.Visible = $True $wb = $Excel.Workbooks.Add() $ws = $wb.Worksheets.Add() $ws.Activate() $ws.Select() $excel.Rows.Item("1:1").Select() $excel.ActiveWindow.FreezePanes = $true
而不是冻结第一行,它冻结行的中心和列的中心,即
UPDATE
在重复post中的解决scheme不起作用,即
$excel.Rows("1:1").Select() $excel.ActiveWindow.FreezePanes = $true
给出以下错误:
Method invocation failed because [System.__ComObject] does not contain a method named 'Rows'. At D:\Script\upgrades.ps1:231 char:5 + $excel.Rows("1:1").Select() + ~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidOperation: (Rows:String) [], RuntimeException + FullyQualifiedErrorId : MethodNotFound
要冻结第一行,您需要select第二行:
$excel.Rows.Item("2:2").Select() $excel.ActiveWindow.FreezePanes = $true
如果您有多个工作表并需要冻结每个工作表的第一行:
$colSheets = ($Sheet1, $Sheet2, $Sheet3, $Sheet4, $Sheet5) foreach ($page in $colSheets){ $page.Select() $page.application.activewindow.splitcolumn = 0 $page.application.activewindow.splitrow = 1 $page.application.activewindow.freezepanes = $true } #After you are done, re-select first sheet (optional) $Sheet1.Select()