从 Excel 工作簿 VSTO 调用 Excel 加载项函数

2024-03-06

我想在 Excel Add-In 2007 解决方案中创建一个方法,可以从我的 Excel Workbook 2007 解决方案中调用该方法。

我解释一下,我想从Excel工作簿2007解决方案的代码隐藏文件中调用Excel加载项的方法。我不想使用 VBA 宏。

请帮忙,提前致谢

谢谢, 姆纳尔·杰斯瓦尔


经过大量谷歌搜索后,我现在可以自己回答这个问题了。

请按照以下步骤操作,

  1. 声明一个包含要从工作簿中公开的函数的接口,并将其 ComVisible 属性设置为 true,

公共接口ICallMe 子我的函数() 终端接口

  1. 现在创建一个实现该接口的类,并将其 ComVisible 属性设置为 true,并将 classinterface 属性设置为 None,有些像这样,

公共类 AddInUtilities 实现 ICallMe

Public Sub MyFunction() Implements ICallMe.MyFunction
    Dim activeWorksheet As Excel.Worksheet = Globals.ThisAddIn.Application.ActiveSheet

    If activeWorksheet IsNot Nothing Then
        Dim range1 As Excel.Range = activeWorksheet.Range("A1")
        range1.Value2 = "This comes from my Add-In"
    End If
End Sub

结束课程

  1. 5.使用“注册 COM 互操作”选项构建您的加载项项目。要设置“Register for Com Interop”选项,请转到项目属性,然后转到“Compile”选项卡(在 VB.net 中),然后设置“Register for COM interop”以进行检查。

  2. 现在,在您的 Excel 工作簿项目中,添加对此加载项的引用,并在工作簿的任何事件(例如单击按钮)上编写以下代码,

Dim addIn As Office.COMAddIn = Application.COMAddIns.Item("ImportData")

昏暗实用程序 As ImportData.ICallMe = TryCast(addIn.Object, ImportData.ICallMe)

实用程序.MyFunction()

你完成了:)

唯一要记住的是,不要从工作簿或工作表的启动事件中调用加载项函数。

我希望它对大家有所帮助,因为它对我有用。

谢谢, 姆纳尔·杰斯瓦尔

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 Excel 工作簿 VSTO 调用 Excel 加载项函数 的相关文章

  • 非托管 C++ 中的 XLL Excel 插件

    我在非托管 C 中进行了一些数学模拟 现在我需要将它们与 Excel 集成 以便可以从 Excel 调用函数并取回值 我不想使用任何 VBA 所以我想我必须实现 XLL 插件 我想使用尽可能少的第三方附加框架 有人能给我指点一个好的教程吗
  • 无法将 DTE、项目或解决方案转换为 VCProject 和 VCCodeModel

    我试图通过代码获取有关 c 程序的一些信息 我在 EnvDTE 方面取得了一些成功 现在我需要使用 VCProject 和 VCCodeModel 并且我遇到了转换问题 希望这就是全部 在工人阶级中 我有一个DTE application
  • 创建 Excel 插件 - 获取单元格值

    我正在使用 Visual Studio 2010 创建 Excel 插件 我能够使用此代码获取单元格地址 label1 Label Globals MyAddIn Application ActiveCell Address ToStrin
  • 如何使用 WIX 打包 VSTO Word 插件以进行部署(到 Office 32 位)?

    我开发了一个VSTO Word add in在 VS 2017 Pro 中 工作正常 准备部署 但是 我找不到包装我的工作程序VSTO Word add in用于我的开发机器以外的机器 对于任何特定的机器 我需要部署一次并使其可供任何可能使
  • VBA 函数参数列表选择

    我想做类似以下的事情 Public Function myFunc vArg1 as string vArg2 as string vArg3 as A B C End Function 用户调用 vArg3 时会得到一个下拉列表 这类似于
  • 将一张纸的某个范围复制到另一张纸中的某个特定单元格

    Workbooks 1 Worksheets 1 Copy after wb2 Sheets 1 上面的代码总是覆盖以前的内容 但这不是我想要的 如何将特定范围复制到特定单元格中的其他工作表 我必须复制的示例 sheet1 range A5
  • C# 中的 MS Word 插件文本更改事件

    我有一个 Microsoft Word 插件 可以在文本中查找相似的单词 但是当我单击按钮时 我的问题是 当用户输入单词时如何调用函数 换句话说 当用户键入以获取当前单词并处理它并获取它的相似单词时 我想要一个像 TextChange 或
  • 如何从 C# 连接到正在运行的 Outlook 实例 [重复]

    这个问题在这里已经有答案了 在VBA中 我通常使用appOutlook GetObject Outlook Application 获取正在运行的 Outlook 实例 如果 Outlook 未运行 则会引发错误 我通常在 Excel 中执
  • Visual Studio 2008 SP1 使用什么 ClearCase 插件

    在工作中 我必须将 ClearCase v7 0 1 2 和 ClearQuest v7 0 1 0 与 Visual Studio 2008 SP1 一起使用 我在 Windows XP SP2 机器上运行 我已经进行了一些搜索 但尚未找
  • 我可以创建使用 WPF 显示的 Visual Studio 2010 外接程序吗?

    我们正在致力于为我们的企业应用程序创建专门的图形编辑器 我们研究并拒绝了 DSL 理想情况下 我希望编辑器的主界面像代码窗口一样停靠 并使用 WPF 进行绘图 谁能给我指出一些文档 让我走上正确的道路 Thanks Colin 更新 它开始
  • 如何让智能感知适用于 XLAM 文件中的 UDF?

    我的 XLAM 文件中有一些 UDF 当 XLAM 作为加载项安装时 Intellisense 似乎不会拾取这些 UDF UDF 本身在 Excel 中运行良好 只是它们不会出现在智能感知中 这里我指的是在工作表上使用时的智能感知 没有办法
  • 什么插件/工作台框架是 Eclipse RCP 的最佳 .NET 替代品?

    我正在寻找一个与 Eclipse 插件框架相当的基于插件的应用程序框架 在我看来 它包括 a core 插件管理框架 Equinox OSGI 它提供了声明扩展端点 然后发现并加载为这些端点提供服务的插件的能力 这与依赖注入不同 但不可否认
  • 是否可以从 VS2010 插件刷新 WCF 服务引用?

    我想在 VS2010 插件中 模拟 右键单击 更新服务引用命令 我有一个对包含 Silverlight 项目的引用 我知道服务引用的名称和服务的 url 我发现了这个 http dedjo blogspot com 2007 03 addi
  • 如何以编程方式在 vs 2008 中创建新的空白解决方案?

    基于设计的方法是 新建项目 gt 其他项目类型 gt Visual Studio 解决方案 gt 空白解决方案 我必须在 C 中以编程方式创建一个空白解决方案 并在此解决方案中添加新的空项目和文件 我在网上找到了很多使用 DTE 的代码 但
  • VBA 将数据透视表的源数据更新到行尾

    我试图弄清楚当使用 VBA 数据更改时如何将数据透视表源数据更新到行尾 我当前的代码如下 Dim shBrandPivot As Worksheet Dim shCurrentWeek As Worksheet Dim shPriorWee
  • Excel VBA 用户窗体 - 当发生变化时执行 Sub

    我有一个包含很多文本框的用户表单 当这些文本框的值发生变化时 我需要通过调用子例程 AutoCalc 根据文本框值重新计算最终结果值 我有大约 25 个框 我不想向每个调用上述子例程的文本框单独添加 Change 事件 当某些值发生变化时调
  • 不使用 item.Document.FullName 获取 ProjectItem 路径

    我有一个 Visual Studio 插件项目 我必须利用这些文件的绝对 或相对 路径来迭代当前项目的项目 The item Document FullName有效 但仅适用于当前打开的文件 有没有其他方法可以访问此信息DTE object
  • Excel countif 单元格中的日期大于或等于另一个单元格中的日期

    这已经让我难受有一段时间了 我只需要计算一个单元格中的日期是否大于或等于另一个单元格中的日期 减去 x 天 例如 A1 2014 年 2 月 20 日 B1 2014年1月20日 COUNTIF B1 gt A1 30 30 就是负 30
  • C# - 如何迭代 Excel._Worksheet 中的所有行?

    我希望以编程方式从 Excel 工作表中提取数据并将其插入数据库表中 如何确定工作表中的列数和行数或以其他方式迭代行 I have Excel Worksheet worksheet Excel Worksheet workbook Act
  • 合并和颜色样式不适用于 Apache POI excel 2003 格式

    在 Apache POI 中 我为某些单元格应用了一些样式并合并了这些单元格 当我在 2010 年或 2007 年打开时 它工作正常 但在 2003 年 格式样式消失了 每次保存 2003 Excel 文件之前都会弹出兼容性检查对话框 请参

随机推荐