2012-01-02 78 views
2

是否有任何方法來重命名或/和刪除包含空格的損壞範圍名稱使用PowerShell的Excel文件「ACVCutoff_4 1」?我被困在這。重命名或刪除名稱失敗。有沒有機會在Excel(2007/2010)中刪除編程式損壞的範圍名稱(含空格)

$Excel = New-Object -Com Excel.Application 
$wbTo = $Excel.workbooks.open($path) 
foreach($name in $wbTo.Names) 
{ 
    $name.Name = $tt -replace '\s+', '_' # name is not affected 
    $name.delete() # returns an error Exception calling "Delete" with "0" argument(s): "Exception from HRESULT: 0x800A03EC" 
} 

我曾嘗試:

Related question

  1. 包括姓名管理器加載並不能解決問題。
  2. 「檢查R1C1參考樣式」(檢查鏈接) - 如何通過編寫代碼來實現?

其他建議?我將不勝感激您的幫助

我正在使用powershell v2和Excel 2007/2010。

這是用碎名的文件:XlsWithBrokenNames

解決方案由克里斯·尼爾森對於那些誰也停留在此:

#$wbTo - is workbook with corrupt names 
$tempFilePath = $path + "temp.xlsm" 
$goodFilePath = $path + "cleanFile.xls" 
$wbTo.SaveAs($tempFilePath,52) #save as xlsm 
$wbTemp = $Excel.workbooks.open($tempFilePath) # open target 
# delete names here 
$wbTemp.SaveAs($goodFilePath,56) #save as xls 
+0

你能描述如何創建一些損壞的命名區域?或者上傳一個帶有一些損壞的命名區域的示例ssheet? – 2012-01-02 23:53:48

+0

根據我的經驗,如果名稱被破壞甚至沒有名稱管理器加載項可以刪除它,但沒有什麼可以,並且您需要重新生成工作簿。順便說一句:如果您重建工作簿,請按小步驟完成並經常保存;沒有什麼比無意中帶來腐敗並不得不從頭開始更糟。 – 2012-01-03 03:21:11

+0

@RachelHettinger不僅經常保存,而且經常保存在不同的文件名下。 – pintxo 2012-01-03 13:41:24

回答

1

腐敗的名字我已經試過的所有直接操作失敗!

但是,這裏有一個可能的選擇:
SaveAs您的工作簿作爲.xlsm你應該得到一個對話框,抱怨無效的名稱,與選項來重命名和Ok to All按鈕。一旦保存,關閉並重新打開文件,Save As.xls,你應該很好去

+0

太棒了,克里斯!它像一個魅力一樣工作! – Artur 2012-01-04 19:05:39

+0

+1有用的方法 – brettdj 2012-03-19 23:24:19

相關問題