从Excel工作簿VSTO调用Excel加载项功能

时间:2010-01-14 14:50:25

标签: excel-2007 add-in

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

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

请提前帮助,请提供帮助

谢谢, Mrinal Jaiswal

2 个答案:

答案 0 :(得分:0)

做了很多googleing之后我现在可以自己回答了。

请按照以下步骤进行操作

  1. 声明一个包含要从工作簿中公开的函数的接口,并将其ComVisible属性设置为true,
  2. 公共接口ICallMe     Sub MyFunction() 结束界面

    1. 现在创建一个实现此接口的类,并将其ComVisible属性设置为true,并将classinterface属性设置为None,其中一些是这样的,
    2.   公共类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.使用Register for COM interop选项构建您的加载项项目。要设置“Register for Com Interop”选项,请转到项目属性,然后转到“编译”选项卡(在VB.net中),并设置“注册COM互操作”以进行检查。

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

      3. Dim addIn As Office.COMAddIn = Application.COMAddIns.Item(“ImportData”)

        Dim utilities As ImportData.ICallMe = TryCast(addIn.Object,ImportData.ICallMe)

        utilities.MyFunction()

        你完成了:)

        唯一需要记住的是,不要在工作簿或工作表的启动事件中调用加载项功能。

        我希望它能帮助你们所有人,因为它对我有用。

        谢谢, Mrinal Jaiswal

答案 1 :(得分:0)

非常感谢,对我有用。现在已经挣扎了2天。 我想使用Excel Addin,用户定义的函数在Office 2016中动态创建一个新的工作簿。

仅举例说明我的工作原理:

public static void printToExcel(String writeToCell)
{
    Workbook xlWorkbook = Globals.ThisAddIn.Application.Workbooks.Add();
    Worksheet xlWorkSheet = xlWorkbook.ActiveSheet;
    xlWorkSheet.Name = "testSheet";
    xlWorkSheet.Cells[1, 1] = writeToCell;
}