c# - 重新计算单元格值的 Excel C# 事件

标签 c# excel events

目前我正在通过 Worksheet.Change 监听 Excel 中的单元格更改事件。 但是,这不会对使用公式重新评估的单元格值使用react。 微软声明 this site工作表类中有一个计算事件,但我找不到这个事件。只有 Calculate() 方法。

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

最佳答案

我设法找到了一种对单元格重新计算使用react的方法:

第一个必须在 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
    }
}

希望我能帮到别人。

关于c# - 重新计算单元格值的 Excel C# 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24283351/

相关文章:

c# - 如果用户离开界面2分钟, session 如何过期? ASP.NET

html - IE.document.all返回空元素vba

有关动态创建的 HTML 事件的 JavaScript 问题

c# - 如何获取C#图表的缩放事件

Symfony 事件监听器

c# - 通过使用任务加快处理改进

c# - Windows 窗体应用程序中的 Dock、Anchor 和 Fluid 布局

c# - 使用 MVVM 将数据绑定(bind)到 WPF 中的 ListView 控件

vba - 如何在 16000 行文件上清除 vba 中的错误 1004?

excel - VBA "Application defined or object defined error"