我想在Excel Excel Add-In 2007解决方案中创建一个方法,可以从我的Excel Workbook 2007解决方案中调用。
我解释一下,我想从excel workbook 2007解决方案的代码隐藏文件中调用Excel加载项的方法。我不想使用VBA宏。
请提前帮助,请提供帮助
谢谢, Mrinal Jaiswal
答案 0 :(得分:0)
做了很多googleing之后我现在可以自己回答了。
请按照以下步骤进行操作
公共接口ICallMe Sub MyFunction() 结束界面
公共类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
结束班
5.使用Register for COM interop选项构建您的加载项项目。要设置“Register for Com Interop”选项,请转到项目属性,然后转到“编译”选项卡(在VB.net中),并设置“注册COM互操作”以进行检查。
现在,在您的Excel工作簿项目中,添加对此加载项的引用以及工作簿的任何事件,如按钮单击,编写以下代码,
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;
}