2017-04-23 20 views
1

我需要知道如何從Excel中使用名爲「Items」的命名區域返回單元格區域(例如A10:C20)電源外殼。我想刪除「項目」(B10:B20)第二列中的條目。我嘗試使用.RefersToLocal方法返回範圍,但它不返回任何內容。我是PowerShell的新手。感謝您的幫助。如何使用PowerShell從Excel中的命名範圍返回單元格區域(例如A10:C20)

$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 

回答

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() 
+0

你提供什麼樣的作品,謝謝您!有沒有辦法訪問範圍中的第二列並清除它而不參考電子表格列(例如B)?如果有人將範圍移動到電子表格中的其他位置,我不想在發生這種情況時更新代碼。用戶往往會做這種事情(移動的東西),而沒有意識到他們已經做了什麼:) – rgraham

+0

也有沒有一種方法來清除列中的值時刪除單元格格式?我有黑色的單元格和彩色的單元格。謝謝 – rgraham

相關問題