我試圖找到所有打開的Excel工作簿並殺死一個特定的人。 但是,當我循環並打印工作簿的標題時,它只顯示一個,但我已打開多個工作簿。C#找到所有打開的Excel工作表並只殺死一個
//Excel Application Object
Microsoft.Office.Interop.Excel.Application oExcelApp;
this.Activate();
System.Diagnostics.Process[] AllProcesses = System.Diagnostics.Process.GetProcessesByName("excel");
foreach (Process ExcelProcess in AllProcesses)
{
//Display the name of the object.
MessageBox.Show(oExcelApp.ActiveWorkbook.FullName);
//if (myHashtable.ContainsKey(ExcelProcess.Id) == false)
// ExcelProcess.Kill();
}
通常有Excel進程運行的只有一個實例,無論工作簿的數量。我不熟悉C#,但你基本上想:foreach(ExcelWorkbookObj在oExcelApp.Workbooks中,然後如果ExcelWorkbookObj!=「whatever」,那麼ExcelWorkbookObj.Close – Banjoe
要麼你沒有發佈完整的代碼片段,或者你沒有使用'ExcelProcess' ,循環變量 –
+1到Banjoe的評論 – brettdj