C# vsto Excel开发时, 在新添加的按钮响应中修改了表格内容, 就不能够进行撤销和重做了, 这是为什么?

C# vsto Excel开发时, 在新添加的按钮响应中修改了表格内容, 就不能够进行撤销和重做了, 这是为什么?,第1张

应该是不行的,你这些vsto或者vba进行 *** 作的时候,其实就是后台对EXCEL文件本身进行了修改。 而撤销这个 *** 作实际是建立在用户 *** 作上的。

也就是说,原生的撤销功能,实际是从EXCEL打开开始监视用户的输入以及EXCEL的输出,

记录下每一步 *** 作(如果你显示隐藏文件的话,在.XLSX文件旁边,会看到有一个临时文件的生成),当你Ctrl+Z的时候,就回滚上一步的 *** 作。

但是使用VBA或者VSTO的时候,由于是代码在执行,所以EXCEL是不记录每一步的 *** 作内容的,

如果仍需毁粗要这个纤告镇功能,可以把撤销功能也重写一下,

思路很简单,监视每一步用户的输入(原生撤销友谨)

并记录你VSTO按键的 *** 作功能,逆向运行,

这样就可以将你代码执行的 *** 作进行还原了。

1、工具-->自定义-->命令-->新菜单-->将右边的“新菜单”拖到EXCEL菜单物枝上产生菜单(可自命名)

2、将在左边州搜选择“宏”-->右边选择册蚂历“自定义按钮”拖到“新菜单”下(可自命名)

3、然后指定菜单要运行的vba过程

VSTO 是微软用于开发 Office 插件的一种技术,跟 VBA 比较起来,VSTO 开发更加简单,功能更加强大。本系列博客介绍利用 VSTO 开发 Excel 插件的方法。VSTO 开发的 Excel 插件 (Add-in)是 COM 加载项的一种。新的开发技术可以考虑 Excel Web Add-In。VSTO 与 Web Add-In 的区别可以参考: Office Add-in开发技术及其发展 - 知乎 。

开发环境:卜乱Visual Studio 2019

新建一樱胡个 Excel VSTO Add-In 项目,因为 Visual Studio 2019 支持的项目类型较多,可以在界面中限定开发语言、平台和项目类型进行筛选,以方便定位:

点击 「Next」,指定 Solution 和 Project 的名称:

点击「Create」按钮,创建一个新的项目。这个空的项目已经可以运行,但没有界面看不出效果,所以我们添加一个 Ribbon,这样启动的时候,Excel 就多出一个页签。选中解决方案,右键,Add New Item,选择 Ribbon:

Ribbon 是一个界面的容器,初始的 Ribbon 包括一个 tab,tab 包含一个 group。将 tab1 的 Label 属性更改为 VSTO Test,将 group1 的 Label 属性改为 : 自定义组。

在自定义组中,增加一个 Button 控件,Label 属性改为 Hello,并且型颂档实现 Click 事件。在该事件中,对当前单元格写入 Hello World 字符串:

编译运行,启动 Excel 后,Ribbon 菜单多出了 VSTO Test 页签。点击 Hello 按钮,在当前单元格写入了 Hello World 字符串。

当我们编译运行后,之后启动 Excel,该插件也被自动加载运行。对插件的 启用 停用 可以由两个入口来设置:

方法一:

Gitee :VSTO Hello World


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11983204.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存