任何机会在Excel(2007/2010)中删除编程方式损坏的范围名称(包含空格)

有没有办法重新命名或/和删除损坏的范围名称,其中包括空格,例如“ACVCutoff_4 1”在Excel文件中的PowerShell的帮助? 我被困在这。 重命名或删除名称失败。

$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" } 

我曾经尝试过:

相关的问题

  1. 包括名称pipe理器加载项不能解决问题。
  2. “检查R1C1参考样式”(检查链接) – 如何通过编写代码来实现?

还有其他build议吗? 我将不胜感激您的帮助

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

这是一个名字为XlsWithBrokenNames的文件

克里斯·内尔森(Chris Neilsen)解决这个问题的人也是如此:

 #$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 

所有对我尝试过的腐败名称的直接操纵都失败了!

但是,这里有一个可能的select:
SaveAs工作簿作为.xlsm您应该得到一个抱怨无效名称的对话框,其中包含重命名选项和Ok to Allbutton。 一旦保存,closures并重新打开文件, Save As .xls ,你应该很好去