ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 1381|回复: 0

[分享] 浅谈VB.net/C#.net/Delphi开发Excel函数加载宏部署

[复制链接]

TA的精华主题

TA的得分主题

发表于 2019-3-15 10:27 | 显示全部楼层 |阅读模式
VB.net/C#.net/Delphi开发Excel函数部署DLL文件


1、VB.net/C#.net/Delphi开发Dll文件注册到系统文件中,至于如何注册问百度。

2、检测HKEY_CURRENT_USER\Software\Microsoft\Office\16.0\Excel\Options\下是否存在OPEN
   其中Excel2003 对应11.0 、Excel2007 对应12.0 、Excel2010 对应14.0 Excel2013 对应15.0 Excel2016 对应16.0 ,用户可以根据自己的版本进行确定。
   如果不存在OPEN 则在键值Options\下写入 OPEN  /A "Progid",其中/A 是开启加载宏的意思,如果存在OPEN 则说明当前已安装其他加载宏函数,则开启加载宏不是OPEN而是OPEN1开始,如果还存在其他的函数 依次类推 OPEN2、OPEN3.....
   倘若VB.net/C#.net/Delphi编写的DLL全部兼容Excel03-19 不但要循环Excel版本 还要循环每个Excel 版本下注册表..Options是否存在OPEN,然后写入注册表。
3、安装上面的步骤已经完美解决了Excel函数部署问题,但是有时候打开Excel 选择【开发工具】-加载宏 会弹出对话框 说函数不存在 确定是否删除该加载宏,这是什么问题引起呢?原因归咎于卸载DLL文件的时候没有把对应Excel版本下注册表Options 下OPEN进行从新排序。比如依次安装三个加载宏函数,存在OPEN  OPEN1  OPEN2 ,卸载OPEN1加载宏,并把OPEN1键值删除,那么对应Excel版本下注册表Options存在OPEN  OPEN2中间没有OPEN1。解决办法在卸载OPEN1加载宏的同时把 OPEN  OPEN2 进行排序成 OPEN OPEN1.原来的OPEN2变成OPEN1.如果卸载其他的函数,安装上面方法进行操作。
以下是VB.NET写的函数 附件在最后面可以下载
源码链接:https://pan.baidu.com/s/1VE2KawaaYUjPQKZ-1jaV1g
提取码:oes1
Excel 函数采用inno setup 部署
QQ774115495





您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-12-4 01:17 , Processed in 0.039921 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表