我正在测试Excel-Dna,想要一个运行一些简单代码的Excel按钮。据我所知,以下代码应在Excel的“加载项”选项卡中添加一个按钮:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using ExcelDna.Integration.CustomUI;
using NetOffice;
using NetOffice.ExcelApi;
using ExcelDna.Integration;
using ExcelPluginTest;
namespace ExcelPluginTest
{
public class AddIn : IExcelAddIn
{
public static Application Excel { get; set; }
public void AutoOpen()
{
Factory.Initialize();
Excel = new Application(null, ExcelDnaUtil.Application);
}
public void AutoClose()
{
}
}
public class ExcelHelper
{
public static Application Excel { get { return AddIn.Excel; } }
[ExcelCommand(MenuName = "ExcelPlugin Test", MenuText = "Write the Excel version")]
public void WriteTheVersion()
{
var ver = Excel.Version;
var rng = Excel.Range("B3");
rng.Value = ver;
}
}
}
但是,即使在“文件”中选中了“加载项”选项卡,它也不可见选项|自定义功能区。我不确定是否会发生这种情况,因为没有任何东西可以显示(我的代码中也有问题)或者按钮实际上存在但我看不到它因为加载项选项卡被隐藏(我确实确认加载了AddIn) (在AutoOpen中设置BP))。
答案 0 :(得分:1)
对于Excel-DNA,使用Excel将您的方法注册为宏,它需要是“静态的”。所以这应该有效:
[ExcelCommand(MenuName = "ExcelPlugin Test", MenuText = "Write the Excel version")]
public static void WriteTheVersion()
{
}
请注意,有一个Excel错误会影响Excel 2013下的[ExcelCommand...]
样式菜单 - 这在即将发布的Excel-DNA版本0.32中已得到修复。