自定义菜单命令未显示在Excel中的“加载项”选项卡上

时间:2014-02-28 10:45:21

标签: c# excel excel-2010 excel-dna

我正在测试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))。

1 个答案:

答案 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中已得到修复。