如何使用PowerShell从Excel中的命名区域返回单元格区域(例如A10:C20)

时间:2017-04-23 07:09:48

标签: excel powershell

我需要知道如何从一个名为" Items"的名为范围内返回一个单元格范围(例如A10:C20)。在Excel中使用PowerShell。我想删除" Items"的第二列中的条目。 (B10:B20)。我尝试使用.RefersToLocal方法返回范围,但它没有返回任何内容。我是PowerShell的新手。谢谢你的帮助。

    $Path = "C:\file.xls"

    $Excel = New-Object -ComObject Excel.Application
    $Excel.Visible = $false
    $Workbook = $Excel.Workbooks.Open($Path) 
    $page = 'Main'
    $ws = $Workbook.worksheets | where-object {$_.Name -eq $page}

    $ws.Range("Items").RefersToLocal

1 个答案:

答案 0 :(得分:0)

您可以直接使用范围,然后使用范围元素的列属性(B列为2)清除并保存它,如下所示:

$Path = "i:\named.xls"

$Excel = New-Object -ComObject Excel.Application
$Excel.Visible = $false
$Workbook = $Excel.Workbooks.Open($Path) 
$page = 'Main'
$ws = $Workbook.worksheets | where-object {$_.Name -eq $page}

$namedarea = $ws.Range("items")

$namedarea | ?{$_.column -eq 2} | %{$_.clear()}

$excel.Save()