用于重新计算的单元格值的Excel C#事件

目前我正在通过Worksheet.Change在Excel中监听单元格更改的事件。 但是这不会对具有公式的单元格的重新评估值产生反应。 微软在这个网站上说在工作表类中有一个计算事件,但是我找不到这个事件。 只有Calculate()方法。

你有什么build议如何聆听重新评估的细胞?

我设法find一种方法来反应细胞重新计算:

首先要注册Workbook.SheetCalculate事件,因为在工作表级别没有这样的事件。

此事件返回已重新计算单元格的工作表。 重要说明:它不返回重新计算的单元格,它将返回所有单元格。

从这一点开始,我遍历这些单元格,并查找公式和它们的值。

注册以获得活动:

workbook.SheetCalculate += new Microsoft.Office.Interop.Excel.WorkbookEvents_SheetCalculateEventHandler(CalculateEvent); 

计算事件如下所示:

 private void CalculateEvent(Object Sh) { if (!(Sh is Workbook)) return; Worksheet s = Sh as Worksheet; Range range = s.UsedRange; foreach(Range cell in range.Cells) { string formula = Convert.ToString(cell.Formula); if(formula.IndexOf('=') >= 0) //Do something } } 

希望我能帮助这个人。