首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Excel C# VSTO -如何知道用户是否更改了公式?

在Excel中使用C#和VSTO开发时,可以通过以下方法判断用户是否更改了公式:

  1. 使用Worksheet.Change事件:该事件在工作表中的任何单元格发生更改时触发。可以通过订阅该事件来检测用户是否更改了公式。具体步骤如下:
代码语言:txt
复制
// 在Workbook中订阅Worksheet.Change事件
private void ThisWorkbook_Startup(object sender, System.EventArgs e)
{
    this.SheetChange += new Excel.WorkbookEvents_SheetChangeEventHandler(Worksheet_Change);
}

// 在事件处理程序中检测公式更改
private void Worksheet_Change(Excel.Range target)
{
    // 检查目标单元格是否包含公式
    if (target.HasFormula)
    {
        // 公式发生更改
        // 执行相应的操作
    }
}
  1. 使用Worksheet.SelectionChange事件:该事件在用户更改选择的单元格时触发。可以通过订阅该事件来检测用户是否选择了包含公式的单元格。具体步骤如下:
代码语言:txt
复制
// 在Workbook中订阅Worksheet.SelectionChange事件
private void ThisWorkbook_Startup(object sender, System.EventArgs e)
{
    this.SheetSelectionChange += new Excel.WorkbookEvents_SheetSelectionChangeEventHandler(Worksheet_SelectionChange);
}

// 在事件处理程序中检测选择的单元格是否包含公式
private void Worksheet_SelectionChange(Excel.Range target)
{
    // 检查目标单元格是否包含公式
    if (target.HasFormula)
    {
        // 公式发生更改
        // 执行相应的操作
    }
}

这些方法可以帮助您在Excel中使用C#和VSTO开发时判断用户是否更改了公式。根据具体需求,您可以在公式更改时执行相应的操作,如更新相关数据、重新计算公式等。

腾讯云相关产品和产品介绍链接地址:

  • 腾讯云计算服务:https://cloud.tencent.com/product/cvm
  • 腾讯云数据库:https://cloud.tencent.com/product/cdb
  • 腾讯云服务器:https://cloud.tencent.com/product/cvm
  • 腾讯云云原生应用引擎:https://cloud.tencent.com/product/tke
  • 腾讯云音视频处理:https://cloud.tencent.com/product/mps
  • 腾讯云人工智能:https://cloud.tencent.com/product/ai
  • 腾讯云物联网:https://cloud.tencent.com/product/iotexplorer
  • 腾讯云移动开发:https://cloud.tencent.com/product/mobdev
  • 腾讯云对象存储:https://cloud.tencent.com/product/cos
  • 腾讯云区块链服务:https://cloud.tencent.com/product/tbaas
  • 腾讯云元宇宙:https://cloud.tencent.com/product/mu
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Excel催化剂开源第15波-VSTO开发之DataTable数据导出至单元格区域

上篇提到如何Excel界面上拿到用户的数据,另外反方向的怎样输出给用户数据,也是关键之处。 VSTO最大的优势是,这双向的过程中,全程有用户的交互操作。...而一般IT型的程序,都是脱离用户的操作,只能让用户准备好数据,离开Excel,或生成数据,要重新打开某文件才能获取到数据结果。...在VSTO中,用户随时在Excel最强UI前端中生产数据,同时也在获得数据结果后,无缝地利用Excel强大的数据处理能力进行数据的再次加工如Vlookup一些其他信息进来,做个图表展示等等。...VSTO程序在用户全程数据链条中,都无缝地参与了,只在用户无法解决的复杂数据转换时,才使用二次开发进行处理,处理完,立即可进行下游的其他操作,用户体验绝对是一流。...同样最后一句话总结,可以让大家聚焦在业务逻辑的实现上,通用性的功能,只需找相应的现成轮子帮助即可。

2.4K30

跟AI学C#编程-007:do...while循环

跟AI学C#编程-007:do...while循环 在学习VB.net VSTO for Excel中,发现很多.NET库在C#中引用比较方便,所以学习一下C#, 努力加油..........在C#中,do...while循环如何应用,举例说明 回答1 在C#中,do...while循环是一种控制流语句,它允许代码块重复执行,直到满足指定的条件为止。...回答2 在C#中,do...while循环是一种控制流语句,它允许代码块至少执行一次,然后根据条件决定是否继续执行。...在学习VB.net VSTO for Excel中,发现很多.NET库在C#中引用比较方便,所以学习一下C# 如果对你有帮助,请转发给大家免费学习 学习记录 序 =====文章列表====== 1 C#...编程-001:C#简介 2 C#编程-002.C#与VB.net区别 3 C#编程-003.数据类型 4 C#编程-004循环语句for循环 5 AI学C#编程-005:foreach循环如何应用 6

15510
  • Excel催化剂功能第4波-一大波自定义函数高级应用,重新定义Excel函数的学习和使用方法

    因此使用Excel的群体中,自然地区分出了初级用户、中级用户、高级用户Excel催化剂致力于打造Excel用户易用、易学,但同时实现功能却又是震撼的愿景。...基础-掌握IF和SUM函数的用法 一个函数的组成部分及函数参数怎么填写 一个简单的SUM函数,相信所有Excel用户都能学会, 知道每个函数都有特定的功能 就像一个黑箱一样,给它一堆原始数据、条件(参数...,我只是把他们开发好的函数(在C#/VB.NET里使用)搬到Excel上而已,我也是用它们的黑箱,不是我自己造的,有现成的谁不去用还自己傻傻地写代码!!...当普通Excel用户不需要在编程环境中就可以使用正则表达式功能,这是不是很让人惊喜万分的事情 当然开发人员可以随时在Excel上简单一个公式就可以调用出正则表达式功能,也是一件十分愉快的事情。...所以催生了是否可以作为一种媒介,让广大的Excel用户们可以瞬间点燃Excel的爆点,无需苦苦地挣扎地没日没夜的技巧学习、高级复杂函数的烧脑,最终走向了从入门到放弃的道路。

    1.4K20

    Excel催化剂开源第19波-一些虽简单但不知道时还是很难受的知识点

    通常许多的知识都是在知与不知之间,不一定非要很深奥,特别是Excel这样的应用工具层面,明明已经摆在那里,你不知道时,永远地不知道知道了,简单学习下就已经实现出最终的功能效果。...查找枚举型的完整命名空间 在录制宏中,得到的代码,虽然绝大部分是很容易改写成VB.Net或C#代码的,但有一个小问题是当录制出来的代码有枚举类型时,在VBA里的枚举是不带命名空间的,在VSTO里,是需要补全此命名空间的...,可以自行新建xml、ini文件等方式存储,但其实有一简单的方式,直接存储在Setting类上,当调用时,还可以有强类型引用的方式调用,智能提示并有数据类型区分。...用户的话,可以供用户修改,程序级的就是不修改的,固定保存到程序中的,比硬代码写在代码里维护要方便。...Color转换 日期的转换 同样地,在日期转换上,也直接有OLE的日期格式,这个方法也是后来偶然知道的,在Excel自定义函数里还傻傻地写过一个转换函数。 OLE日期转换1 OLE日期转换2

    80530

    VSTO之外的另一开发利器Excel-DNA介绍,VSTOExcel-DNA优缺点分析

    面向对象编程,代码管理方便,其实本人也不太有面向对象的编程思想,不能编出给其他人用的类,但却可以源源不断地用别人封装好的类库,属于编程群体中的使用者,非制造者。 2....学习资料很匮乏,一开始想着VBA转VB.net,语法是同一母系,门槛不高,但入门后发现很难再有更多的资料介绍了,C#语言倒还好些,视频、书籍都比较丰富,但需要给自己一个决心,狠狠啃上个把月,才能入门成功...开发出来的VSTO插件,对用户的OFFICE版本有要求,一般需要OFFICE2007及以上才可使用。...开发自定义函数的利器,VSTO开发自定义函数在发布给用户机器使用时麻烦,要对注册表注册,需要管理员权限,但Excel-DNA开发的完全没有这些烦恼,用户双击即可打开使或进行加载项载入,下次打开Excel...可以对自定义函数进行用户输入提示功能,效果和原生的工作表函数的提示功能接近,这是VSTO和VBA开发所没法做到的。 1.7.

    4.8K41

    『JSA宏神助攻之二』使用外部程序VSTO插件执行JSA宏

    以下是历史内容: 在WPS的个人版上,默认只有JSA宏,没有VBA宏,虽说在VSTO/ExcelDNA项目里或者外部程序如C#/python等可以使用COM通信来调用WPS的COM开放的接口。...但是WPS的COM接口,表面是和Excel通用,但也有许多bug存在。暂时没有测试到是否存在JSA宏正常而VBA宏不正常的情况。...如何调用,答案和FreeScript类似,仍然使用了Application.Run方法,在外部程序或VSTO插件里,调用这个方法,同样可以运行JSA宏。...function 打开网页(urlStr) { var sht= Application.ActiveSheet; sht.Shapes.AddWebShapeEx(urlStr) } 用外部程序例如C#...app =(Excel.Application) Activator.CreateInstance(etAppType); //Excel.Application app= (

    8710

    『JSA神助攻之二』使用外部程序VSTO插件执行JSA宏

    以下是历史内容: 在WPS的个人版上,默认只有JSA宏,没有VBA宏,虽说在VSTO/ExcelDNA项目里或者外部程序如C#/python等可以使用COM通信来调用WPS的COM开放的接口。...但是WPS的COM接口,表面是和Excel通用,但也有许多bug存在。暂时没有测试到是否存在JSA宏正常而VBA宏不正常的情况。...如何调用,答案和FreeScript类似,仍然使用了Application.Run方法,在外部程序或VSTO插件里,调用这个方法,同样可以运行JSA宏。...function 打开网页(urlStr) { var sht= Application.ActiveSheet; sht.Shapes.AddWebShapeEx(urlStr) } 用外部程序例如C#...app =(Excel.Application) Activator.CreateInstance(etAppType); //Excel.Application app= (

    12510

    『WPS二次开发最新成果』使用外部程序VSTO插件执行JSA宏

    在WPS的个人版上,默认只有JSA宏,没有VBA宏,虽说在VSTO/ExcelDNA项目里或者外部程序如C#/python等可以使用COM通信来调用WPS的COM开放的接口。...但是WPS的COM接口,表面是和Excel通用,但也有许多bug存在。暂时没有测试到是否存在JSA宏正常而VBA宏不正常的情况。...如果使用外部程序或VSTO插件可以调用这些接口,是比较完美的。例如使用RPA工具,可以全自动化地对其进行单元格图片插入,最后形成报告结果。...如何调用,答案和FreeScript类似,仍然使用了Application.Run方法,在外部程序或VSTO插件里,调用这个方法,同样可以运行JSA宏。...function 打开网页(urlStr) { var sht= Application.ActiveSheet; sht.Shapes.AddWebShapeEx(urlStr) } 用外部程序例如C#

    35310

    Excel催化剂开源第8波-VSTO开发之异步调用方法

    VSTO开发过程中,因其和普通的Winform开发有点差别,具体细节笔者也说不清楚,大概是VSTO的插件是寄生在Excel中,不属于独立的进程之类的,其异步方法调用时,未能如Winform那样直接用await...使用场景 在Excel上直接使用异步方法,貌似有上述提及的问题,不像Winform程序那样,需要Excel上调出窗体,再从窗体上作异步方法的操作,直接调用的话,遇到用户用键盘、鼠标交互Excel操作会报错...Excel催化剂中有些操作与外部资源交互特别是外部网络访问时,若不使用异步方法,将会卡界面,用户感觉死机了一样。 使用异步方法后,可以有一些状态信息反馈给用户知道程序还在运行,是十分有必要的。...以下举例Excel催化剂批量下载文件的功能。...因为VSTO的特殊性,可能这些问题,在专业程序猿群体中,不会遇到,但在VSTO开发群体中,这里的确是个大坑,希望给大家填补此坑后,大家可以顺畅地写出更好的代码。

    65520

    VSTO开发Excel插件自动更新实现效果演示

    使用传统的VBA方式开发,开发过程简单,布署也方便,直接把Excel的xlsm或xlam文件发给用户用户打开就可以使用,但现在问题来了,如果出现前面所说的程序有bug和需要增加新的功能,我们怎么办?...用户使用Excel就像使用一个网页浏览器一样,每次打开Excel,都能得到最新的功能,而整个升级过程,完全不需要用户做半点操作,一切都是自动完成,瞬间完成,代码和数据分离,整个更新过程只是代码部分,不需加载和传输用户的数据部分...现VSTO的程序为何能做到不需用户干预,直接就自动更新了呢,如果出现像传统VBA开发那样,更新的代码被篡改了,然后用户不知情下代码已经植入了用户的机器,这样的情况岂不是很可怕。...同样的发VSTO的方案中,用户也需要手动配置好信任开发者存放dll等代码文件的位置,如果开发者不按要求放到某个位置,用户机器可以拒绝对其信任。...有了这两层的信任机制,用户就可以完全地相信开发者的程序,不需要每次都被询问是否信任或每次都要自己去识别这些文件的可靠性等等。 视频演示: ?

    2.3K20

    Excel催化剂开源第14波-VSTO开发之单元格区域转DataTable

    Excel开发过程中,大部分时候是和Range单元格区域打交道,在VBA开发中,大家都知道的一点是,不能动不动就去遍历所有单元格,那性能是非常糟糕的,很多时候,是需要把整个单元格区域装入数组中再作处理的...言归正传,如何实现Range对象转为DataTable对象 原理同样地先将Range对象转为二维数据,再将二维数组转为DataTable 具体代码如下: public static DataTable...单元格区域加载至DataTable内,然后才是真正的VSTO开发,在.Net的世界中,有了Excel的源数据,再经过许多轻松方便的轮子功能,快速地实现数据的转换,在Excel催化剂中大量使用(因笔者是数据库技术的资深玩家...,可能较一般专业程序开发者玩得溜在这一块)。...最后,数据在程序内,最终需要返回给用户界面,即Excel单元格区域,又是怎样实现最为合理呢,请继续关注下篇讲解。

    1.6K20

    Excel催化剂安装过程详解及安装失败解决方法

    Excel催化剂用了VSTO的开发技术,并且为了最好的用户体验,用了Clickonce的布署方式(无需人工干预自动更新,让用户使用如浏览器访问网站一般,永远是最新的内容和功能)。...仅以此文简单罗列一下,希望能够给广大用户一些实质性的指引(安装成功过Excel催化剂插件或安装成功过其他的VSTO开发的Excel插件,对另外安装其他类似的VSTO插件将会非常容易,所以很有必要一次艰难...(因Excel只信任网站,不信任IP地址的访问,所以要使用Hosts文件配置一下映射关系,即让电脑知道访问某个域名实际上对外是访问某个IP地址)和开发者所使用的证书安装到用户电脑上两重保证才能完成整个信任过程...) 取名催化剂,因Excel本身的强大,并非所有人能够立马享受到,大部分人还是在被Excel软件所虐的阶段,就是头脑里很清晰想达到的效果,而且高手们也已经实现出来,就是自己怎么弄都弄不出来,或者更糟的是还不知道...所以催生了是否可以作为一种媒介,让广大的Excel用户们可以瞬间点燃Excel的爆点,无需苦苦地挣扎地没日没夜的技巧学习、高级复杂函数的烧脑,最终走向了从入门到放弃的道路。

    2K30

    Office 365开发概述及生态环境介绍(一)

    表面上看,2007带来了全新的UI风格——Ribbon,这是一次大胆地尝试,因为谁都知道2003的菜单已经非常多了,以至于对于不少新手来说,经常发生找不到功能所在的位置。...2003及早期版本的二进制文件格式之外,还有一种全新的基于XML的文件格式(通常在默认的文件扩展名后面添加一个x以示区分,如Word 2003的格式是doc,而Word 2007虽然依然支持doc,但推荐用户使用...例如,我需要根据Excel一个表格的数据,每一行生成一个表单,然后发送到打印机去打印出来。...我选择了Excel Add-in这个模板,点击“Ok”后,会自动生成如下的代码 ?...这里就是我们熟悉的.NET编程的体验,可以用到几乎所有.NET Framework的功能,目前VSTO支持的开发语言除了VB.NET,还有C#

    2.9K20

    Excel催化剂开源第41波-网络采集类库及工具分享

    催化剂开发过程中,也会用到,在此向大家简单分享,希望对VBA转VSTO开发群体有所帮助。...HttpClient类库 这个因为Excel催化剂项目是基于.Net 4.0的(顾及一部分用户仍然使用win7系统,win7没有sp1补丁安装不了.Net 4.5,当然更老的XP系统最高只能.Net 4.0...WebClient类库 如果对网页访问要求不高,不需要做过多的cookie处理、refer页面、header头伪装等操作,单纯地只是访问下网页,返回结果即可,可以考虑用此类库,简单易用,是HttpRequest的抽象的封装...催化剂这种业余选手来说,天生喜欢找别人做好的轮子,微软造得不够易用,就有其他开发者在其基础上做封装,做简单的轮子出来,所以这也是VBA转VSTO的一大优势,可以用上专业程序员世界的大量轮子,而VBA几乎没有什么轮子可用...苏飞的httpHelper 这个类库是笔者一开始学习C#和在C#上学习网抓的第一个类库,可能现在已经迭代了好多版本了,网址是这个,自己有兴趣可以再了解。

    1.1K30

    终于有一款组件可以全面超越Apache POI

    如果想通过简单的代码逻辑,快速创建、加载、编辑、导入/导出大型文档(Excel、Word、PDF),并将其部署到云端时,又该如何实现?...功能对比:GcExcel VS Apache POI 公式数量 GcExcel支持452种Excel公式。...是否支持导出PDF GcExcel不但支持导出PDF格式,还可控制页面设置选项。 Apache POI不支持导出PDF。...条件格式 GcExcel支持多种条件格式,如自定义图标集、判断是否高于平均值(AboveAverage)、发生日期判断、Top 10和重复项判断,且这些条件格式的设置规则与VSTO保持一致。...打开并保存一个20.5MB 的 Excel文件,其中包含了许多数据、公式和单元格格式,结果如下: GcExcel 用时不超过4.9S ;Apache POI 则达到10S左右 GcExcel 内存消耗为

    3.3K10

    个人永久性免费-Excel催化剂功能第28波-工作薄瘦身,安全地减少非必要冗余

    文件变大后,通常不止是占用硬盘空间的问题,麻烦的是数据操作、数据处理等过程也跟着一同变慢。...Excel工作薄虚大的原因分析 使用无效单元格数量过多 一般来说Excel表格单元格用多少,就引用多少单元格,这是较合理的操作方式,特别是一些颜色、公式范围的设定,不按上述操作,最容易引起工作薄虚增大小和处理速度变慢...建议在完成操作后,打开原文件进行简单比对,看是否有误删除操作。 ?...,或者更糟的是还不知道Excel能够做什么而停留在不断地重复、机械、手工地在做着数据,耗费着无数的青春年华岁月。...所以催生了是否可以作为一种媒介,让广大的Excel用户们可以瞬间点燃Excel的爆点,无需苦苦地挣扎地没日没夜的技巧学习、高级复杂函数的烧脑,最终走向了从入门到放弃的道路。

    1K30

    ——完美Excel第169周小结

    从在Excel 5中推出的第一个版本起,VBA的存在将近30年。无论你是否学习过编程,这都是一种非常容易学习的编程语言,并且能够快速应用到具体的工作场景中。 为什么学VBA?...学会如何使用VBA,不仅可以充分发挥Excel的能力,让你从不同的角度理解和使用Excel,而且会使你具备普通的Excel用户没有的更多技能。...正因为这样,Microsoft的态度很微妙,难以放弃VBA,但试图使用其他的工具来替代,例如在十几年前推出的VSTO,但其门槛实在太高了。...——如何统计员工负责的客户数?...下面是本周完美Excel社群上分享和讨论的内容: #Excel公式使用经验 查找数字时,可以考虑使用SUMIFS函数 数组公式经验分享 #Excel技巧 设置毫秒和超过24小时的时间 #Office 365

    4.6K40

    个人永久性免费-Excel催化剂功能第31波-数量金额分组凑数功能,财务表哥表姐最爱

    在财务工作过程中,很大时候需要使用到凑数的需求,花了两三天时间认真研究了一下,本人水平也只能做代码搬运工,在用户体验上作了一下完善。完成了Excel版的凑数功能。...手动输入时,可利用名称功能,输入方便 请务必输入区域时,不要全选整列数据,自定义函数没作整列的较验处理,整列选择意味着运算量是几万倍的增加,已经用到这些功能的表哥表姐们,也很必须学习好规范的Excel...Excel催化剂插件承诺个人用户永久性免费使用!...,或者更糟的是还不知道Excel能够做什么而停留在不断地重复、机械、手工地在做着数据,耗费着无数的青春年华岁月。...所以催生了是否可以作为一种媒介,让广大的Excel用户们可以瞬间点燃Excel的爆点,无需苦苦地挣扎地没日没夜的技巧学习、高级复杂函数的烧脑,最终走向了从入门到放弃的道路。

    1.7K20

    Excel催化剂功能第5波-使用DAX查询从PowerbiDeskTop中获取数据源

    为使插件使用体验更佳,特设立几个小功能,让整个过程流畅,更好用。...Excel催化剂插件承诺个人用户永久性免费使用!...) 取名催化剂,因Excel本身的强大,并非所有人能够立马享受到,大部分人还是在被Excel软件所虐的阶段,就是头脑里很清晰想达到的效果,而且高手们也已经实现出来,就是自己怎么弄都弄不出来,或者更糟的是还不知道...所以催生了是否可以作为一种媒介,让广大的Excel用户们可以瞬间点燃Excel的爆点,无需苦苦地挣扎地没日没夜的技巧学习、高级复杂函数的烧脑,最终走向了从入门到放弃的道路。...技术路线从一名普通用户,通过Excel软件的学习,从此走向数据世界,非科班IT专业人士。

    6.4K30

    个人永久性免费-Excel催化剂功能第40波-工资、年终奖个人所得税计算函数

    各种个税公式套路 某些函数极客们,用Excel自带的原生函数,可以玩出很高深的应用效果,水平毋庸置疑,但让普通用户来学习这些函数,就会把人推向万丈深渊了,简单截图一下网络上流转的函数方法。...5000元起征点只是按逻辑实现,不知道具体的业务操作是否适用,若有不适用地方,欢迎反馈。...当然制作过程也有成本,可以用打赏的方式来回馈一下制作者,让社会分工良性化,术业有专攻,让专业人做专业事。...Excel催化剂插件承诺个人用户永久性免费使用!...Excel催化剂插件下载链接:https://pan.baidu.com/s/1kDtFkM5KZ4R1lAO0TO07AA 因插件使用VSTO开发技术完成,插件的安装需要电脑满足相关的环境配置才能运行

    61730
    领券