2015-09-18 41 views
0

我開始在PowerShell上搞亂Excel,特別是因爲我必須經過138個文件,將$B$1的每個實例更改爲TEXT($B$1,"0000"),我不想做手動。

在網上找到了一些資源並更改了公式,但是當我嘗試.Save()時,PowerShell似乎只是坐在那裏,等待着我不知道是什麼的東西。

PS C:\> $excel = New-Object -com Excel.Application 
PS C:\> Get-ChildItem '\\UNC\Path\to\folder' <Common file string>*.xls -Recurse | Select-Object -First 1 | % { 
>> $workbook = $excel.Workbooks.Open($_.Fullname) 
>> $workbook.Save() 
>> } 

任何想法可能是什麼問題?

+0

我會好奇的看你的代碼如何創建你的對象。您是否禁用了警報? excel是否可見?看看這個http://blogs.technet.com/b/heyscriptingguy/archive/2005/01/31/how-can-i-make-changes-to-and-then-re-save-an-existing -excel-spreadsheet.aspx – Matt

+0

更新了初始代碼 –

+1

我的猜測是Excel提示您提供信息。將displayalerts設置爲false可能會有所幫助。也可以將Excel設置爲可見,以便您可以看到該操作。 – Matt

回答

1

當Excel在這方面掛起時,我會懷疑它正在等待你做些什麼。最簡單的是確認這是將可見性設置爲True。

$excel.Visible = $true 

這將只顯示您之前隱藏的對話框。正如評論中所討論的那樣,您看到了來自Compatibly Checker的消息。一旦你知道它是什麼,並且願意壓制它,那麼只需要有以下幾點:

$excel.Visible = $false 
$excel.displayAlerts = $false 
+0

太棒了,非常感謝@Matt! –