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

目前,我正在通过Worksheet.Change收听Excel中的单元格更改事件.
但是,这不会对具有公式的单元格的重新评估值产生反应.
Microsoft在this site上声明在工作表类中有一个calculate事件,但是我找不到此事件.只有Calculate()方法.

您对如何聆听重新评估的单元格有什么建议吗?

解决方法:

我设法找到一种对单元格重新计算做出反应的方法:

首先,必须在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
    }
}

希望我可以帮助某人.

上一篇:javascript-IE 10的keyup / keydown不能用jquery 1.10.1触发


下一篇:DebuggerEvents.OnEnterRunMode事件在Visual Studio 2012中不起作用